How aidanmorgan/tim works
Curious Contraptions is a 3D contraption-puzzle game: players place and connect parts in a workshop, run a machine, and try to satisfy a level goal. The workshop also supports editing, undo, and local save/load; the README describes a progressively taught campaign and electrical, mechanical, optical, rope, airflow, and other contraption mechanics. The graph emphasizes those product stages and the simulation’s part/network layers. Some relationships are documented only at a broad level; dashed, uncited links mark unverified integration rather than inspected call paths.
Main entry points: MachineWorld.cs Machine world · Workshop.cs Workshop UI · WorldGeometry.cs World geometry · MachinePart.cs Part runtime
Components 19
Workshop
- Workshop UI
ui/Workshop.cs - Editing guidance
ui/WorkshopGuidance.cs - Saved machine
engine/MachineData.cs
Puzzles
- Campaign content
tools/Campaign/Program.cs
Simulation
- Machine world
engine/MachineWorld.cs - Contraption parts
parts - Part runtime
engine/MachinePart.cs - Typed connections
engine/ConnectionPort.cs - Mechanical network
engine/MechanicalNetwork.cs - Electrical network
engine/ElectricalNetwork.cs - Optical network
engine/OpticalNetwork.cs - Rope network
engine/RopeNetwork.cs - Airflow network
engine/AirflowNetwork.cs - World geometry
engine/WorldGeometry.cs - Physics solver
engine/physics/PhysicsWorld.cs - Physics bodies
engine/physics/PhysicsBody.cs
Visuals
- Workshop visuals
ui/WorkshopIcons.cs - Optical path visuals
ui/OpticalPathVisual.cs
Other components
- Player
Connections 19
- Player → Workshop UI: edits machine
README.md - Workshop UI → Machine world: edits and runs
ui/Workshop.cs - Workshop UI → Saved machine: saves snapshot
ui/Workshop.cs - Workshop UI → Campaign content: selects level
README.md - Workshop UI → Editing guidance: uses guidance
ui/WorkshopGuidance.cs - Workshop UI → Workshop visuals: uses icons
ui/Workshop.cs - Machine world → Part runtime: manages parts
engine/MachineWorld.cs - Machine world → Contraption parts: creates parts
engine/MachineWorld.cs - Part runtime → Typed connections: declares ports
engine/MachinePart.cs - Machine world → Mechanical network: updates network
engine/MachineWorld.cs - Machine world → Electrical network: updates network
engine/MachineWorld.cs - Machine world → Optical network: updates network
engine/MachineWorld.cs - Machine world → Rope network: updates network
engine/MachineWorld.cs - Machine world → Airflow network: updates network
engine/MachineWorld.cs - Machine world → Optical path visuals: refreshes paths
engine/MachineWorld.cs - Machine world → World geometry: uses collision geometry
engine/WorldGeometry.cs - World geometry → Physics bodies: queries bodies
engine/WorldGeometry.cs - World geometry → Physics solver: uses physics geometry
- Physics solver → Physics bodies: steps bodies
engine/physics/PhysicsWorld.cs