1# whiskers-art
2
3The cat's drawing as data, with no drawing code. A mood becomes a **scene**: rectangles on the
415 by 16 pixel grid, in groups, each group with the motion it has (`motion.rs`: breathing, a tail
5wag, a blink, juggling paws, rising hearts). `grey.rs` is the grey cat in all eleven moods and the
6five mouth shapes; `decor.rs` is what hangs round any cat (sound waves, a thought bubble, stars,
7z's, hearts, balls, a cloud with a cross).
8
9One drawing serves two shells. The website writes a scene as SVG and plays the motions as CSS. The
10app plays it in Compose from Kotlin that `bin/gen-kotlin` writes from this data
11(`src/kotlin.rs`), so a drawing changed here changes there at the next build.
12`fixtures/frames.txt` is the cat flattened at three instants in every mood; the Rust test and the
13app's `FramesTest` both hold to it.
14
15| Path | What |
16| --- | --- |
17| `src/node.rs`, `src/motion.rs` | The drawing and its motions as data. |
18| `src/grey.rs`, `src/decor.rs`, `src/scene.rs` | The grey cat, what is round it, and a mood as a whole picture. |
19| `src/flatten.rs` | A scene at an instant as the quads it covers: the reference the app is tested against. |
20| `src/kotlin.rs`, `src/bin/gen-kotlin.rs` | The Kotlin writer. |
21| `fixtures/frames.txt` | The reference frames. |