Warning
this project is in alpha and very much a WIP. expect memory leaks, inconsistencies, and missing features.
initial goals revolve around micromouse simulation, maze solving algorithm testing, benchmarking
enabling other simulation options via extensions and enhanced api is planned.
it's zig. you know the drill.
git clone https://github.com/thuvasooriya/azem.git && cd azem
zig build # will build for your platform and run the exe
zig build web # to run on web browser! yeah i know awesome right
i'm a very openionated person, that's one of the reasons i love open-source. if something is itchy, then you can go break some stuff. when i was trying out mms simulator (which is awesome and props to mack for providing executables for all platforms, god what a legend), i wanted to make some changes. then i found out it uses qt for the gui. hmm... (long pause and a deep sigh). cpp i can bite down but qt... i just couldn't.
aktually... i wanted to try doing something cool in zig language. so here we are.
much of the initial app architectural decisions were also inspired from pixi (another awesome zig project by an awesome person). the architecture is constantly evolving. this is almost the 4th rewrite of this application. this will evolve with dvui and zig so don't expect a finish line anytime soon.
Tip
if you haven't figured already, azem is just the letter m
on the word "maze" cycled to the back. i'm still not sure how i want to pronounce it, will get back on that.
-
render detailed maze: numbering, detected, goal
-
reorganize azem theme to be modular and extensible
-
implement settings
-
render mouse
-
introduce wall following
-
stats : time, speed
-
introduce better algorithms
-
don't trigger github action when src files/index.html are not changed
-
brainstorm
- input and output files
- maze text files
- compressed representations?
- file management dependency
- mms compatibile api
- better debugging during mouse run
- accurate simulation params
- turn rate
- slip
- disturbances
- sensor errors
- simulate sensor inputs
- remote debugging with actual mc and sensors
- input and output files
-
optimizations
- try to utilize browser fonts instead of embedding fonts in web build
- better keyboard navigation
- optimize in memory representations
-
app packaging for mac
-
windows packaging?
-
incremental, hot reloading with algorithms
-
set up donations
-
moving popup windows have undefined behavior when going through title bar
-
how to make truely native multiple windows
-
adding native float window attribute on macos
- basic theme
- basic maze loading and rendering
- native builds (tested in mac)
- web wasm builds
- console logging
- ZSF : zig is super awesome (for better or for worse i'm still living off my parents, if you can please go donate them)
- mackorone : for creating the awesome piece of software that is mms
- david-vanderson : dvui is awesome and david can get you out of any tough spot
- foxnne : pixi codebase rocks