Moved to chaos-apps: site redirects to /fput-chain/ there; README points to the new repo
3 changed files+18−8
.github/workflows/pages.ymlmodified+2−8View file
@@ -1,4 +1,4 @@
1-name: Deploy site
1+name: Deploy site (redirect to chaos-apps)
22
33 on:
44 push:
@@ -19,16 +19,10 @@ jobs:
1919 runs-on: ubuntu-latest
2020 steps:
2121 - uses: actions/checkout@v4
22- - uses: actions/setup-node@v4
23- with:
24- node-version: 22
25- cache: npm
26- - run: npm ci
27- - run: npm run build
2822 - uses: actions/configure-pages@v5
2923 - uses: actions/upload-pages-artifact@v3
3024 with:
31- path: dist
25+ path: redirect
3226
3327 deploy:
3428 needs: build
README.mdmodified+2−0View file
@@ -1,5 +1,7 @@
11 # fput-chain-chaos
22
3+**Moved (2026-10-09).** This app now lives in the [chaos-apps](https://vault1.magland.org/listening-for-chaos/chaos-apps) repository, in `src/fput-chain/`, with code shared with the other apps in `src/common/`; its history was carried over. Live site: https://chaos-apps--listening-for-chaos.vault1-sites.magland.org/fput-chain/. This repository is kept for reference and is no longer updated; its site now redirects to the new one (`redirect/index.html`).
4+
35 Struck FPUT-beta chain, step 2 of "Listening for chaos" (after double-pendulum-chaos). Work in progress.
46
57 Current state: N masses (2 to 64, default 2) between two fixed walls, joined by springs with tension k d + k3 d^3. The chain sits at rest until Strike, which gives it energy E (log slider, 10 µJ to 100 J, default 2.51 J) as velocity, either on one mass j alone (default mass 1, a hammer blow at one end) or in the shape of one normal mode n. The left card animates the chain (top: to scale, rest spacing a; below: the same displacements drawn sideways as a profile, scaled to fit, with the scale given) with the time and the relative energy error. Speed: 0.1x to 20x real time (default 1x). The time and current energy show at the top left. The Ghost chip (as in the pendulum app) adds a second chain started from the same state with every mass moved by the same amount, 10^k / sqrt(N) m (total offset 10^k m, k = -12 to -1, default -10; moving only the struck mass would put the offset along the motion itself, which does not grow), run in lockstep without renormalization and drawn in translucent orange underneath; restarted on Strike, on "Restart ghost" (from the chain's current state), when switched on or when the offset changes; a readout gives the separation (root sum of squared displacement differences, m) and the time since the ghost started, and a "Separation" chart (log, last 60 s; offered only with the ghost on) plots it. A "Lyapunov" chart (last 60 s; the first 5 s after a strike left out of its y range) shows the largest Lyapunov exponent over the last 10 s and since the strike (`src/lyapunov.ts`, two-trajectory Benettin method as in the pendulum app: a hidden shadow chain 1e-8 away, displacements in units of d0 and momenta in units of sqrt(m k) d0, renormalized every step). Checked (N = 4, mass-1 strike, 300 s): without damping 0.1 J ~0.05 to 0.1 /s (weak chaos; N = 4 onset is near 3 k d0^2 = 75 mJ), 0.5 J ~0.5 /s, 2.51 J ~0.9 /s, 25 J ~1.7 /s; with tau 540 s, 0.1 J falls to ~0.01 /s and 2.51 J falls from ~1.0 to ~0.3 /s by 300 s. The slider is labelled "Strike energy". Parameters (m, k, k3, a, tau) fold out underneath with derived values (mode frequencies, d0, nonlinear energy scale, integrator step); Apply or changing N returns the chain to rest. The "Real time" card on the right has toggle chips for its charts. "Mode history" (off by default) is a scrolling heat map of each mode's share of the harmonic energy, log10(E_n / sum E) over 6 decades (inferno colors, mode 1 at the bottom), over the last 300 s (`LiveModeHistory` in `src/modehistory.ts`); the cascade of energy up the modes shows here (e.g. N = 32, mode-1 strike at 10 mJ: the top mode's share goes from ~1e-28 to ~1e-12 in 10 periods of mode 1 and ~3e-5 in 50 without damping; with tau 540 s the damping wins and the spread stalls near mode 17). "Mode bars" shows the current harmonic energy of each normal mode relative to E on a log scale (12 decades), with the number of modes sharing the energy (inverse participation, 1 / sum (E_n / sum E)^2). The other chips are charts over time (from `src/traces.ts` and `src/cursor.ts` of double-pendulum-chaos, with per-group colors and a legend capped at 8 series): displacements, velocities, spring stretches, mode energies (log, last 60 s; values below 1e-12 of E left out), energies (E, T, V, W dissipated) and the energy balance error ((E + W - E0) / E0); others last 10 s; sampled every 10 ms; hover for values, click to pin. Mode bars, displacements and mode energies are on by default. Masses, springs and modes share one color per index (four fixed colors for up to 4, a blue-to-red sweep beyond).
redirect/index.htmladded+14−0View file
@@ -0,0 +1,14 @@
1+<!doctype html>
2+<html lang="en">
3+ <head>
4+ <meta charset="UTF-8" />
5+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6+ <title>FPUT chain chaos (moved)</title>
7+ <meta http-equiv="refresh" content="0; url=https://chaos-apps--listening-for-chaos.vault1-sites.magland.org/fput-chain/" />
8+ <link rel="canonical" href="https://chaos-apps--listening-for-chaos.vault1-sites.magland.org/fput-chain/" />
9+ <script>location.replace("https://chaos-apps--listening-for-chaos.vault1-sites.magland.org/fput-chain/" + location.search + location.hash);</script>
10+ </head>
11+ <body style="font: 14px/1.45 system-ui, sans-serif; margin: 28px 16px">
12+ <p>FPUT chain chaos has moved to <a href="https://chaos-apps--listening-for-chaos.vault1-sites.magland.org/fput-chain/">https://chaos-apps--listening-for-chaos.vault1-sites.magland.org/fput-chain/</a>.</p>
13+ </body>
14+</html>