-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Try MaGrAct here.
The code architecture is quite simple. We have these main concepts:
The graphic elements are the parts that will be rendered on screen.
These are highly reliant (if not entirely) on Konva. Thanks to this, we can easily implement more features just looking at what's already implemented in Konva and wrapping around that.
Controllers allow us to modify the state of a Graphic.
The state of a specific Graphic (scale, position, color...). All graphics states derive from this.
This is the central state of the entire app and it should be considered as a centralized storage. From this state, we need to be able to recreate the current snapshot of what we are doing in the tool.
The state has been built using mutative. We should make sure that modification supports the pattern followed (since we are using patches provided by mutative for undo-redo ops, we should keep the state all with immutable/supported objects).
Time in the editor is discreet and the unit of time is a tick.
I have created this tool out of curiosity, I am not quite sure about my plans for maintaing it. If it gets some traction within the community, I will probably dedicate some more time to see where it goes.
There are many, many things to be implemented some of which:
- export animation to video
- record audio
- improve performance
- improve user experience (and make more intuitive)
- add animation options and allow more cusomizability to graphic
- add more graphic elements
Any help or suggestion is very well accepted. That said, let's try to keep the code clean-ish.
Under this project, everything is under MIT licensed and what is MIT licensed will remain MIT licensed. If the project moves forward, I might decide to create premium features that will not be open to the public. But as of now, no plan to do so.