January 2024 Update
Alex Dumouchelle
January 31, 2024
What’s changed?
Big things
- File system integration. (finally)
- Opening, saving, and creating new files.
- OpenMarch files are called
.dots
files. - Saving is done automatically once a database file is connected (kind of like iMovie). The save button creates a copy of the current file.
- You can delete marchers and pages.
- This permanently deletes all coordinates attached to that marcher or page and cannot be undone currently.
- Undo/redo for almost all actions.
- Moving marchers, modifying properties of marchers and pages. (name, counts, instrument, etc.)
- Creating marchers and pages is not added to the undo stack, but can be manually undone by deleting them.
- The history stack goes for a currently limitless number of actions.
- History is stored with the save file. So, the longer the change history, the bigger the file.
- This will likely be able to be customized by the user so they can have a “max history” of 1000 actions or something.
- Moving marchers, modifying properties of marchers and pages. (name, counts, instrument, etc.)
- Multiple marchers can be selected and moved at the same time. (also, finally)
- There’s a launch page on startup.
- The app will try and open the last opened file first.
- This website! Used to use Google sites, but we’re Jekylling now in GitHub Pages!
Tiny things
- Movement of marchers can be locked along the x or y axis
- Multiple marcher selection is not supported for this yet.
- Marchers can be snapped to the nearest 1 step, 1/2 step, 1/4 step, and 1/10 step.
- Field properties are baked into the save file. (will be important for later when there are custom canvas widths)
- Coordinates of marchers on the current page can be set to the coordinates of the marchers on the previous page.
January was all over the place. Switching out of Rails into sqlite3 in electron was definitely a good move. This greatly simplified file integration and really just slimmed out the tech stack so less things needed to be kept track of. If there’s one thing I’m learning more than anything, it’s that fabric.js is great, until it isn’t. The way it handles coordinates when a group of objects are selected is silly (each object’s coordinates are the offset from the group’s middle, not the coordinates on the canvas) so that’s why it took so long for multiple marcher selection to work. I fear that the goals I have for OpenMarch’s UI/UX will outgrow what fabric.js can do, but I’m not nearly skilled enough to make a better alternative.
I’m starting to realize that I’m running into decision fatigue as I get closer to an MVP. I’m trying to implement basic features while also future proofing UX flow and keyboard shortcuts. Making this a mature app, like I want it to be, is going to be a huge undertaking. I definitely need help if I want this to get as good as I hope it will be. I need developers, designers, and integrators. Until I make this more public, I guess that’s all me. It’s hard to focus on building a cool feature when the whole thing is weighing down on you.
We might just have an MVP at the end of February (exporting and app deployment is really the only thing we need).
Plans for February
Must haves -
- Export function of some sort
- Printing out coordinate sheets.
- Canvas representation of each page
- csv? xml? dnd?
- Unified keyboard shortcut organization.
- You can’t be activating keyboard shortcuts while you’re typing
- Optimize the fetching of marcherPages
- Currently OpenMarch just gets all of them, all the time, for every change.
- Not an issue for small files, but marchers and pages have an (n^2) relationship. You can see how this may spin out of control.
Nice to haves -
- Animation??? (still)
- Show marchers from prev page
- Show pathways to prev page
- Snap to yard line or hash
- Find a better default location for marchers?
- Evenly distribute marchers function (too far for Feb?)
Remember, you can always check the GitHub project to see what current issues are in the queue.