SpaceTime
A browser experiment that makes an idea tangible: mass shapes spacetime, and objects follow paths through that geometry.

Origin.
SpaceTime began with a way of thinking about gravity: mass changes the geometry of spacetime, and freely falling objects follow paths through that geometry. The part we wanted to explore was the fabric itself, and how changing it changes the motion we see.
A three-dimensional lattice gives that invisible structure something we can look at. Add a mass, bend the grid, and send particles through the same transformation. Turning the idea into working software makes it possible to move around it, change it, and compare what happens.
The aim is a small, explorable model. It belongs alongside the lab’s other interactive systems: start with an idea that is interesting enough to build, then use the result to ask better questions.
How it works.
Glowing masses sit within a fine teal lattice. Gold particles move through the scene. Drag a mass to reshape the field, adjust its weight, or orbit the camera to see the deformation from another angle. Particles can be launched as a wave, a spherical shell, or a scattered cloud.
The prototype separates motion from its visible representation. In an underlying grid space, particles have a position and a velocity and travel along straight paths between boundary reflections. Before drawing them, the application maps those positions into a warped display space. The lattice passes through exactly the same mapping.
Each mass contributes a radial displacement toward its position. Larger masses produce a stronger displacement, distance weakens it, and a softening control keeps the transformation finite near each center. A straight path in the underlying coordinates can therefore appear curved in the displayed scene.
Pause motion to inspect a configuration, or switch to unwarped space to compare it with the original coordinates. Focus mode clears the controls away and gives the scene the full viewport.
Current state
Status / Working prototype
Working prototype.
Working browser prototype. The interactive prototype is available here on the site. Open SpaceTime to move the masses, launch particles, and compare warped and unwarped space. No installation or account is required. The current model is a visual study of coordinate warping, not a general relativity solver.
Build notes
From the work.
Let the space carry the idea
The particles do not accelerate toward the masses in the underlying simulation. Their apparent bending comes from the same displacement field that bends the grid. Keeping those two representations together makes the central idea visible: the space through which motion is displayed matters.
This is also the model’s boundary. General relativity describes spacetime geometry and free-fall paths through it. SpaceTime does not solve Einstein’s field equations or calculate relativistic geodesics. Its three-dimensional spatial warp is a visual analogy for that starting idea.
One transformation, two places to run it
The application uses Three.js, TypeScript, and Vite. Particle positions advance on the CPU, while custom vertex shaders apply the warp to the lattice and particles on the GPU. Instanced rendering draws many particles using shared geometry.
The visible masses use a matching CPU implementation of the embedding. Applying the same rule on both sides keeps the sources, lattice, and particle display in agreement as the field changes. Grid lines are subdivided so the deformation can form curves between their endpoints.
Make the structure easier to read
The visual revision gives the central plane more contrast while letting the surrounding lattice fade with depth. Mint halos identify the masses, and fine gold particles separate motion from structure. The controls sit beside the scene, with time step and line detail available under fine tuning.
The purpose of the polish is to make the experiment easier to inspect. The unwarped comparison and pause control matter as much as the glow: they let the viewer separate the underlying motion from the transformation that changes its appearance.

The next question is about the model
The working image gives us something concrete to examine. How clearly does it communicate the relationship between geometry and motion, and where does the coordinate-warp analogy become misleading? Those questions can guide a future revision before adding more visual complexity.

