visualisation of time on torus based on continuous movement of spark
0
stars
10
commits
TypeScript
primary language
Sep 14, 2026
updated
Time on the clock is not flat.
This project reimagines time as a single, unbroken 1D space curve winding through a 3D helical torus ($S^1 \times S^1$). The entire 24-hour cycle is mapped into 24 continuous macro-loops, ensuring every unique moment occupies an exact, non-overlapping coordinate in 3D space.
| Action | Control |
|---|---|
| Orbit & Rotate | Left Click + Drag / Touch Drag |
| Pan Camera | Right Click + Drag / Two-finger Drag |
| Zoom in / out | Scroll Wheel / Pinch to Zoom |
| View Modes | Torus View (24-hour macro overview) and Seconds View (tight camera glide tracking the active micro-spirals) |
| Atmospheric Lighting | Auto (solar synced), Day (warm solar ambient), Night (aurora borealis) |
The macro wire is parameterized as a closed $(p, q) = (1, 24)$ helical curve embedded on the surface of a torus with major radius $R$ and minor radius $r$:
$$\begin{aligned} \theta(t) &= 2\pi t \ \phi(t) &= 24 \cdot 2\pi t \ x(t) &= (R + r \cos \phi) \cos \theta \ y(t) &= r \sin \phi \ z(t) &= (R + r \cos \phi) \sin \theta \end{aligned}$$
where $t \in [0, 1)$ represents the fractional progression of the 24-hour solar day. The micro-spiral of seconds introduces a second nested perturbation along the Frenet–Serret frame of the curve.
# Clone the repository
git clone https://github.com/nimabeh/helical-time.git
# Navigate into project directory
cd helical-time
# Install dependencies
npm install
# Start local Vite development server
npm run dev
# Build production bundle
npm run build
10 commits
TypeScript
98.6%
HTML
1.1%
visualisation of time on torus based on continuous movement of spark
0
stars
10
commits
TypeScript
primary language
Sep 14, 2026
updated
Time on the clock is not flat.
This project reimagines time as a single, unbroken 1D space curve winding through a 3D helical torus ($S^1 \times S^1$). The entire 24-hour cycle is mapped into 24 continuous macro-loops, ensuring every unique moment occupies an exact, non-overlapping coordinate in 3D space.
| Action | Control |
|---|---|
| Orbit & Rotate | Left Click + Drag / Touch Drag |
| Pan Camera | Right Click + Drag / Two-finger Drag |
| Zoom in / out | Scroll Wheel / Pinch to Zoom |
| View Modes | Torus View (24-hour macro overview) and Seconds View (tight camera glide tracking the active micro-spirals) |
| Atmospheric Lighting | Auto (solar synced), Day (warm solar ambient), Night (aurora borealis) |
The macro wire is parameterized as a closed $(p, q) = (1, 24)$ helical curve embedded on the surface of a torus with major radius $R$ and minor radius $r$:
$$\begin{aligned} \theta(t) &= 2\pi t \ \phi(t) &= 24 \cdot 2\pi t \ x(t) &= (R + r \cos \phi) \cos \theta \ y(t) &= r \sin \phi \ z(t) &= (R + r \cos \phi) \sin \theta \end{aligned}$$
where $t \in [0, 1)$ represents the fractional progression of the 24-hour solar day. The micro-spiral of seconds introduces a second nested perturbation along the Frenet–Serret frame of the curve.
# Clone the repository
git clone https://github.com/nimabeh/helical-time.git
# Navigate into project directory
cd helical-time
# Install dependencies
npm install
# Start local Vite development server
npm run dev
# Build production bundle
npm run build
10 commits
TypeScript
98.6%
HTML
1.1%