GitHub - albertobeiz/kindergrimm: Procedural doodle characters drawn as if by hand on cream paper — and Kindergrimm, the game they live in · GitHub
/" data-turbo-transient="true" />
Skip to content
Search/
Sign in<br>Sign upAppearance settings
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
albertobeiz
kindergrimm
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star<br>29
main
BranchesTags
Go to file
CodeOpen more actions menu
Latest commit
History<br>36 Commits<br>36 Commits
Folders and files<br>NameNameLast commit message<br>Last commit date<br>assets
assets
src
src
vendor
vendor
.gitignore
.gitignore
.vercelignore
.vercelignore
ARCHITECTURE.md
ARCHITECTURE.md
CLAUDE.md
CLAUDE.md
README.md
README.md
crowd.html
crowd.html
editor.html
editor.html
game.html
game.html
how.html
how.html
index.html
index.html
items.html
items.html
orla.html
orla.html
serve.py
serve.py
voxel.html
voxel.html
voxelcrowd.html
voxelcrowd.html
View all files
Repository files navigation
drawai
Procedural doodle characters, drawn as if by hand on cream paper,<br>rigged one part per bone so they can be animated and used later in<br>games.
Adding a part type? Read ARCHITECTURE.md.
python3 serve.py
index.html — the menu. The five scenes, and the only place they<br>are linked from: no scene links to another. The two games get the<br>same card on it.
orla.html — the class photo : pick five children of ten and the<br>photo is scored like a poker hand.
game.html — Kindergrimm : a baby school in the dark.
editor.html — one face, click a part to tune it, reroll or lock<br>parts, seed and medium selectors, animation toggles.
crowd.html — a 7×5 page of living faces, no editing. Click a face<br>and it is someone else; R draws a new page.
items.html — the toy shop: every object family × every rank, the<br>contact sheet the art gets reviewed on.
How it fits together
A face is a recipe : {seed, media, color, parts:{...}}. It is the<br>only state — the same JSON always redraws the same face, so a face can<br>be saved, shared and rebuilt inside a game at runtime.
src/sketch.js — the hand. Strokes are filled ribbons with wobble,<br>dry granulation and overshoots; fills are techniques (hatch,<br>scribble, stipple, graphite, wash, oil daubs, chalk, marker).
src/media.js — what the character is made of. A medium answers<br>tone / skin / edge, so parts describe shapes and never pick a<br>technique.
src/species.js — what animal it is. A species is a table of loaded<br>dice (dog → floppy ears, snout, spots, no hair), not new drawings,<br>so adding one is data only.
src/layout.js — every measurement two parts have to agree on: the<br>head outline, the eye anchors, the body block.
src/parts/*.js — one file per feature family (skull, eyes, mouth,<br>hair, horns/ears, body, extras). parts/index.js is the registry:<br>the ordered list of what is switched on.
src/rig.js — recipe → bones → meshes. Generic: it knows nothing<br>about eyes or arms, so adding a part never touches it.
src/anim.js — boil, blink, gaze saccades, talk, sway and breath.<br>Eyes pre-draw six states, so a glance is a texture swap.
src/crowd.js — the crowd, plus the life director that makes one<br>character glance, mutter or throw an emote every so often.
About<br>Procedural doodle characters drawn as if by hand on cream paper — and Kindergrimm, the game they live in<br>kindergrimm.vercel.app<br>Resources<br>Readme<br>Activity<br>Stars<br>29 stars<br>Watchers<br>0 watching<br>Forks<br>7 forks<br>Report repository
Releases
Packages
Contributors
Languages
You can’t perform that action at this time.