This repository has no description
1# Shapemaker's submodules
2
3In approximate order of dependency:
4
5- `geometry`: Types and operations that don't have an inherent graphical representation but are used to define more complex objects: `Point`, `Region`, etc
6- `graphics`: Types and operations for objects that can get rendered: all the `Object` variants (lines, circles, etc), the `Canvas`, `Layer`s, etc
7- `random`: Methods named `random_...` on various types, to help with semi-random procedural artworks
8- `rendering`: Traits that pertain to rendering graphical elements to an SVG tree and their various implementations on most structs from `graphics`
9- `synchronization`: Data structures and methods to synchronize various musical sources (audio files, MIDI files, etc) with the video
10- `video`: Data structure, user API (mainly adding hooks), rendering and encoding of `Canvas` "frames" into a H.264 MP4 video file
11- `vst`: A VST to interact with shapemaker within a DAW directly [wip]
12- `wasm`: WASM-specific code to provide a JS API to shapemaker, to, for example, make it interact with the WebMIDI API
13
14See the individual READMEs in each submodule for more information.
15
16```mermaid
17graph TD
18 geometry --> random
19 graphics --> random
20 geometry --> graphics
21 graphics --> rendering
22 rendering --> video
23 synchronization --> video
24 rendering --> wasm
25 synchronization --> vst
26```