Add Python TrainSim with loop track map and physics.
Some checks are pending
CodeView TrainSim CI / test (push) Waiting to run
CodeView TrainSim CI / docker (push) Blocked by required conditions

FastAPI server, replaceable JSON config, tests, Dockerfile.
Pairs with ATO via spec/interface.md contract.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Mona Lisa 2026-06-14 20:37:22 +00:00
parent 45c95836ef
commit 9c5ef3a5cd
18 changed files with 414 additions and 18 deletions

22
tests/test_physics.py Normal file
View file

@ -0,0 +1,22 @@
from trainsim.config_loader import SimParams
from trainsim.physics import Train
def test_train_accelerates_with_traction():
p = SimParams(1000, 20, 0.15, 0.25, 0.02, 25)
t = Train()
t.sim_running = True
t.actuate(100, 0)
for _ in range(120):
t.tick(p, 0.05)
assert t.speed_mps > 0.5
def test_brake_slows_train():
p = SimParams(1000, 20, 0.15, 0.25, 0.02, 25)
t = Train(speed_mps=10.0)
t.sim_running = True
t.actuate(0, 100)
for _ in range(200):
t.tick(p, 0.05)
assert t.speed_mps < 10.0