Skip to content

thuvasooriya/azem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

azem

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

azem running in macos native build

getting started

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

why

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.

plan

next

  • 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

done

  • basic theme
  • basic maze loading and rendering
  • native builds (tested in mac)
  • web wasm builds
  • console logging

big thanks to

About

awesome zig enabled micro-mouse maze simulator

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •