Skip to content
/ omsim Public

simulator for 2017 zachtronics puzzle game "opus magnum"

License

Notifications You must be signed in to change notification settings

ianh/omsim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

724b196 · Feb 17, 2025
Jun 16, 2024
Feb 17, 2025
Jun 26, 2022
May 11, 2024
Nov 1, 2023
Apr 28, 2024
Jun 10, 2022
Feb 17, 2025
Jun 17, 2021
Feb 4, 2024
Apr 28, 2024
Aug 14, 2023
Sep 21, 2022
Nov 8, 2023
Feb 3, 2025
Oct 22, 2024
Feb 3, 2025
Jan 29, 2024
Jun 16, 2024
May 7, 2024
Mar 15, 2024

Repository files navigation

to use, try

  make run-tests && ./run-tests

to run some tests, or

  make omsim && ./omsim <path to .puzzle> <path to .solution>

to simulate a particular solution. also,

  make libverify.so

builds a shared library with an API designed for bots to use (see verifier.h for
documentation).

the following aren't implemented yet:
- "spooky action at a distance" via conduit cloning
- "quantum bonds"

the following issues are known:
- track reset is different from the game in certain situations (see
  test/not-working-yet/overlapping-track-reset)

these lists should get shorter over time. feel free to file github issues for
any other bugs you find!

thanks to:
- grimy for documentation on sub-cycle ordering
  (at https://github.com/Grimy/om_overlap/blob/master/README.md)
- luna for documentation on collision detection
  (at https://gist.github.com/l-Luna/22a2595755f11d2acf0409f755cea9bb)
- jinyou for the solution archive
  (at http://jinyou.byethost5.com/)
- rebix and brothermojo for transcribing the in-game puzzles into .puzzle files
  (see test/solutions folder)
- kotritrona for the puzzle editor
  (at https://kotritrona.github.io/opusmagnum-puzzle-editor/ompuzzle.html)
- f43nd1r for omsp, which was helpful for understanding solution/puzzle files
  (at https://github.com/F43nd1r/omsp)
- syx for gathering data on production cabinet geometry