thuvasooriya/azem
awesome zig enabled micro-mouse maze simulator
6fd00e445d644309ecb907ea327f7a4be3e835f1.tar.gz
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.
[!TIP] you can try azem in your web browser now!
go to thuvasooriya.me/azem
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
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