From the git history
How the studio got built.
15 pull requests over 4 days. Each one is a milestone, with its date, its commits and what it touched. This page is generated from git log by the site’s sync script. Pull requests that only merged main back into a branch, and changed nothing on main, are left out.
Monday, 5 October 2026
- First commit22:40
Initial commit
Add palette extractor and deny reading .env files
.claude/settings.jsonpalette.py- Add palette extractor and deny reading .env files
Add 15 s showreel film with renderer, synthesized score and checks
films/reeltools.gitignorelibrender.mjs- Add 15 s showreel film, frame-accurate renderer and check tools
Wednesday, 7 October 2026
Add SafariOS product film; switch reel to Inter; per-element cue sync check
assetsfilms/safariosrefsfilms/reel.gitignore+10 more- Add SafariOS film; switch reel to Inter; per-element sync check
Thursday, 8 October 2026
Add florios-morph film with per-state geometry, text-visibility and loop checks
films/florios-morphassetslibrender.mjstools- Add florios-morph film; text-mask and per-state geometry checks
Harden renderer: real file paths, root containment, bt709 tagging, fail fast on page errors
.github.gitignorerender.mjsrequirements.txttools4 commits
- Harden renderer: real file paths, strict root containment, explicit bt709, fail fast on page errors
- Ignore every reference video in refs/, not just launch.mp4
- Add CI: lint + render-and-check every film on Linux
- Fix CI workflow YAML: quote a step name containing ': '
Springs: exact responses for every damping ratio, presets, and ODE tests
.githublibtools- Springs: exact responses for every damping ratio, presets, and ODE tests
Reel: every cue lands within a frame of its sound; make its CI job blocking
.githubfilms/reel- Reel: every cue lands within a frame of its sound; make its CI job blocking
Audio: strict mastering, per-sound seeds, audio health checks, phone-friendly low end
films/florios-morphlibtools- Audio: strict mastering, per-sound noise seeds, and audio health checks
- florios-morph: low end that survives phone speakers (small-speaker drop 2.9 -> 1.7 LU)
Prepare repo for public release
LICENSENOTICE.mddocs/shotlist.mdrefs- Prepare repo for public release
safarios: fictional tour title on the pipeline board
films/safarios- safarios: fictional tour title on the pipeline board (was a real package name)
Add motion-film project skill
.claude/skills- Add motion-film project skill
Reference analysis: four launch films and best-of for Safari OS
refs.gitignoreNOTICE.mddocs/style_guide.md- Reference analysis for launch, launch2, launch3, launch4 and best-of
Friday, 9 October 2026
safarios-v2: one booking from request to paid, in 16:9, 9:16 and 1:1
films/safarios-v2docs/safarios-v2render.mjstools- safarios-v2: one booking from request to paid, in three formats
Course notes: eight lessons on code-rendered motion graphics
docs/course- Course notes: eight lessons on code-rendered motion graphics
README for the public repo, films in media/, and a renderer fix found by the quick start
mediaREADME.mdrender.mjs- README for the public repo, and the films' videos in media/
- render.mjs: create the output folder, and exit cleanly if ffmpeg fails
- README: say plainly that GitHub's file view downloads mp4s rather than playing them
8,926 lines added across all pull requests, counted with git diff --shortstat per merge.