Purge for Mac: Free, Open-Source Mac Cleaner
免費開源的 Mac 清理工具,可清理快取、Xcode 垃圾與應用殘留。優先放入廢紙簍,無遙測。可用 Homebrew 安裝,或下載以用於 macOS 13+。
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗An interactive gallery of periodic solutions of the planar Newtonian three-body problem, rendered as glowing trails in the browser — plus a braid view that unrolls each orbit along a time axis.
It plays three published catalogues:
| Collection | Orbits | Source |
|---|---|---|
| Classic | 20 famous orbits: figure-eight, Lagrange, Šuvakov–Dmitrašinović butterflies & moths, Broucke | Moore 1993; Chenciner & Montgomery 2000; Šuvakov & Dmitrašinović, PRL 110, 114301 (2013); Broucke 1975 |
| Li & Liao | 2,044 zero-angular-momentum orbits (695 equal-mass, 1,349 with m₃ ∈ {0.5 … 10}) | Li & Liao, Sci. China PMA 60, 129511 (2017); Li, Jing & Liao, PASJ 70, 64 (2018) — sjtu-liao/three-body |
| Free-fall | 24,582 initial conditions = 12,409 distinct collisionless free-fall orbits (236 self-dual) | Hristov, Hristova, Dmitrašinović & Tanikawa, Celest. Mech. Dyn. Astron. 136, 7 (2024), arXiv:2308.16159 — data |
No build step and no dependencies — open app/index.html in a browser (works from file://), or serve the folder:
python3 -m http.server -d app 8000 # then open http://localhost:8000
Deploy: it's a static site. On Vercel, import the repo as-is — vercel.json serves the app/ folder with no build step. On GitHub Pages, publish from main and open /app/.
B) — each body becomes a world-line: position projected on an adjustable axis (→) against time (↑). The bodies ride a "now" line while their history scrolls down; at every crossing the strand nearer the viewer passes over, as in a braid diagram. The time window is in scale-invariant time t* so every cell scrolls at the same rate.L): a census of the braid of every catalogued orbit (14,473 in all). Plot braid entropy log λ against T*, crossings, syzygies, word length or the Lyapunov exponent, with correlation and Nielsen–Thurston type tables. The census is validated against the published topology: 2,043/2,044 Li & Liao free-group words (the remaining entry is an error in the published table) and 236/236 self-dual syzygy sequences. Click a point to open that orbit.
A second mode, Form lifetimes, tests how long forms survive. Each orbit is nudged by ε = 10⁻³ … 10⁻¹³ and run until its syzygy sequence first deviates. The measured lifetimes follow τ ≈ ln(δ/ε)/λ_p, with λ_p from the monodromy matrix: median λ_fit/λ_p = 0.995 for unstable Li & Liao orbits, and λ_p matches the published free-fall Lyapunov exponents to within 1%.C): objects at finite resolution. A cloud of 200 nearby states evolves, in the Chirikov standard map (a KAM island or the chaotic sea; click the portrait to place a cloud) or around a three-body orbit. Two members are one object at resolution ε if they have stayed within ε of each other so far. The view shows the cloud coloured by object, the count N(ε, t), and the dendrogram, which only gains branches as time runs. The first split matches the prediction from the stretching of the cloud's centre, δ₀Λ*(t) = ε, to within a few percent.Keys: Space pause · S settings · B braids · L braid lab · C clouds · ←/→ page · Esc back.
Integrator (app/physics.js). The orbits are extremely unstable (the free-fall catalogue reports Lyapunov multipliers up to e³⁰ per period) and pass through near-collisions down to ~10⁻⁸, so a plain Runge–Kutta drifts or stalls. The app uses algorithmic regularization (Mikkola & Tanikawa 1999): a logarithmic-Hamiltonian leapfrog — exact for Kepler motion — in chain coordinates (relative vectors along the two shortest edges, so a close pair keeps full double precision), driven by Gragg–Bulirsch–Stoer extrapolation with adaptive step and exact landing on a target time.
Each orbit takes ~1–10 ms to compute; cells are filled a few per frame.
Renderer (app/gl-trails.js). Trails are continuous WebGL triangle strips with per-vertex width and brightness (smooth taper, Catmull–Rom-resampled positions, rounded head) and an anti-aliased core evaluated per pixel. Glow is a bloom post-process — the scene is Gaussian-blurred at ½, ¼ and ⅛ resolution and added back — so tight hairpin turns never fold. Braids are drawn back-to-front with a depth buffer: each strand carries a dark outline sitting just behind it, which cuts the strands further back but never itself. A Canvas 2D fallback is used when WebGL is unavailable.
app/
index.html, style.css UI
main.js collections, grid, inspector, braid view, export
physics.js regularized integrator (also loadable from Node)
gl-trails.js WebGL trail / braid / bloom renderer
braid.js syzygies, free-group words, braid words, invariants (also loadable from Node)
lifetime.js form lifetimes: Newton refinement, monodromy exponent, perturbed runs (also loadable from Node)
lab.js braid lab view (braid entropy and form lifetimes)
clouds.js clouds: standard map, three-body clouds, complete-linkage objects (also loadable from Node)
clouds-view.js clouds view
braid-data.js braid census (generated)
lifetime-data.js lifetime census (generated)
classics.js initial conditions of the classic gallery
orbits-data.js Hristov et al. free-fall catalogue (generated)
liao-data.js Li & Liao catalogues (generated)
scripts/
build-data.js regenerate the two data files from the published sources
braid-census.js regenerate app/braid-data.js (all cores, about a minute)
lifetime-census.js regenerate app/lifetime-data.js (all cores, about an hour)
test-physics.js regression checks of the integrator against the catalogues
docs/ screenshots
genealogy_time.tex companion paper (build with tectonic or pdflatex)
npm test # node scripts/test-physics.js (Node 18+)
npm run build-data # re-download and rebuild app/*-data.js (byte-identical output)
Code: MIT. The orbit catalogues belong to their authors (see the table above); this project only re-packages the published initial conditions in a compact form and cites them in the generated files. Please cite the original papers if you use the data.