← All projects

Games & simulation · 2 min read

Chrono Loom

Chrono Loom turns a route into a schedule. The player chooses where an actor should be and when it should arrive, then runs a 20-second loop and weaves earlier routes into the next attempt.

My role
Personal project
Project scope
Offline Godot / C# prototype · private source
Chrono Loom showing a current route, a woven past self, timeline curves and five satisfied constraints.Open full image in a new tab
The built-in two-switch example: a woven past self takes the upper route while the current plan takes the lower route. The constraint notebook reports five of five satisfied.
System walkthrough

The main responsibilities in this workflow.

  1. Timed waypoints
  2. Piecewise-linear trajectories
  3. Constraint and collision evaluation
  4. Timeline feedback
  5. Freeze and replay a past self

A route is a function of time

The simulation uses piecewise-linear trajectories between timed waypoints. It evaluates whether the schedule respects speed, energy, and puzzle constraints, rather than checking only whether the actor reaches a final tile.

A completed route can be frozen as a past self. Up to three earlier selves replay their plans while the player prepares another. That creates puzzles where cooperation is an explicit timing problem, such as holding two switches at the same instant.

Check motion between frames

Collision evaluation considers movement over an interval. Two actors can cross between sampled positions, so final-position overlap alone is not sufficient. The project includes swept checks and interpolation tests alongside checks for valid and invalid schedules.

The interface can project position against time along either axis. A crossing in that projection is not automatically a physical collision; the simulation checks both coordinates. Actual collision markers help explain the difference.

Keep experimentation reversible

The player can scrub time, pause, step, undo, reset, and save or load schedules. The tutorial uses temporary practice state and restores the original puzzle when it ends. Example schedules provide a way to inspect a feasible solution before inventing another.

One puzzle includes a prescribed package loop with timed receipt, scanning, and return. The implementation evaluates those constraints directly. It does not claim a general time-travel solver, mixed-integer optimizer, or procedural puzzle generator.

Project notes

Three prototype puzzles with a finite loop and explicit constraints. No general optimization solver or network service.

Related work