Section index
Case study: building The Cabinet of Minor Gods from 0→1
A devotional archive of sixty minor gods who govern the tiny failures, comforts, delays, and accidents of contemporary life—documented not as fantasy characters, but as material evidence of miracles too specific for established religion.
Project in one paragraph
What began as an inquiry into an artist's existing synthetic practice became a sixty-deity world with a concept bible, 60 canonical portraits, 60 canonical manifestations, 60 nonverbal sound relics, 73 final voice performances, ten liturgies, a complete evidence film, and two interactive websites. The project moved through artist-model testing, serialized generation, coverage audits, voice casting, procedural audio, repeated editorial conform, browser interaction design, and deployment packaging. TITLES MCP served as the generative and provenance layer; local Python, FFmpeg, ImageMagick, HTML/CSS/JavaScript, and browser QA served as the production and publishing layer.
Initial question
The process did not start with a request for sixty images. It started by looking at the artist's existing work and asking what kind of system could grow from its recurring qualities:
- Characterful synthetic world-building
- Tactile and handmade material cues
- Deadpan humor
- Whimsy complicated by the uncanny
- Ordinary objects behaving as if they possess memory
The proposed answer was a pantheon of minor gods attached to overlooked contemporary domains.
The generative premise
The Cabinet would not depict major mythic forces. It would canonize small events and systems:
- An unsent message that arrives anyway
- A traffic cone completing an inspection
- A chair permanently holding clothes
- A receipt outliving its purchase
- A drawer refusing to open all the way
- A name remembered too late
- A copier producing evidence of something not copied
Each god needed more than a visual prompt. It needed a repeatable theological and production schema:
Name
Domain
Offering
Taboo
Miracle
Material construction
Canonical portrait
Manifestation event
Audio relic
Evidence account
Liturgy placement
That schema became the sixty-entry CABINET_BIBLE.md.
Phase 1: choosing a visual tradition
The project tested multiple TITLES artist models against a representative god rather than generating the full collection immediately. The tests included:
- Collage Around Me by @sudutalien
- Bones and All by @antidote
- Cut From Elsewhere by @juujuumama
Cut From Elsewhere was selected. Its physical-collage lineage, layered sacred-object language, and material density could support a unified pantheon without forcing every god into the same literal imagery.
Two candidates were generated for every final portrait. The selected image was recorded by explicit output ID and downloaded locally. This preserved a real selection process and retained rejected alternatives as lineage rather than silently treating the first output as final.
Phase 2: serialized liturgies
The sixty gods were produced as ten liturgies of six. This provided a useful unit for both production and review:
- Six portrait selections
- A small set of strong manifestations
- A chapter score
- Evidence speech where justified
- A standalone chapter film
- A cumulative master
The liturgy structure prevented the project from becoming a single unreviewable batch. It also exposed repetition early enough to correct it. Domestic, municipal, digital, emotional, transit, and workplace gods were deliberately mixed across the complete Cabinet.
Phase 3: motion as an event
The initial films did not require a video for every god, but the interactive Cabinet eventually did. A coverage audit showed that only 28 of 60 gods had canonical manifestations. The remaining 32 were generated through TITLES with Kling Video v2.6 Pro.
The motion brief rejected generic proof-of-life camera moves. Each manifestation needed one event tied to the god's domain. Examples included:
- Weather moving through mildew
- A drawer revealing an obstruction
- Mug handles changing places
- Muted words becoming beads
- A receipt becoming a ferry
Lost Glove produced two moderated failures. Both were refunded. A third prompt reduced the action to restrained ambient material behavior and succeeded. That episode established a useful production principle: preserve the conceptual event, but simplify its literal depiction when moderation or model behavior blocks the first formulation.
The result was a verified 01–60 motion library with no decode failures.
Phase 4: sound beyond voice
Two forms of sound were built locally.
Chapter scores
A TITLES-generated 60-second music cue was quoted but intentionally not approved. Instead, ten deterministic procedural scores were synthesized with Python and verified locally. Their sparse hums, impulses, bells, noise, and mechanical tones better matched the Cabinet than a generic continuous soundtrack.
Individual audio relics
Every god received a separate five-second nonverbal identity. These were not miniature songs. They were material events: paper, water, relays, keys, motors, electrical hums, impacts, friction, and degraded signals.
Lossless WAV sources were preserved and browser-ready M4A files were normalized and encoded. This produced another complete invariant:
60 gods → 60 audio relics → 60 browser references → 0 decode failures
Phase 5: the first website
cabinet.html translated the collection into an interactive reliquary:
- Canonical still as resting state
- Manifestation on hover, focus, click, or Enter
- Corresponding audio relic synchronized with the video
- Stop and rewind on leave
- One active sound source at a time
- Explicit sound-enable gesture for browser autoplay compliance
The site made stillness meaningful. Motion was not a looping decorative background; it was an event caused by approach.
Phase 6: rejecting narration
An early synthetic narrator sounded polished, legible, and wrong. It converted a tactile, uncanny archive into the tone of an explainer or wellness application.
The project paused and made a sixteen-option voice audition reel across several speech-model families and local treatments. The central correction became:
Speech is evidence, not narration.
A recurring four-person civic cast emerged:
- River — private answering-machine caller
- Patient_Man — municipal clerk
- Charon — Witness One
- Aoede — Witness Two
The final evidence system contained:
- 28 private answering-machine units
- 19 municipal-intercom notices
- 13 conflicting-witness units
- 73 raw performances
The two witnesses were not mixed as cinematic dialogue. Their separate performances were placed sequentially and damaged through the same narrow domestic machine.
Phase 7: using existing assets instead of generating more
The project briefly investigated first-and-last-frame video generation as a way to extend each manifestation. Before any extension batch was run, the strategy was rejected. The existing stills and five-second videos already contained enough material if edited carefully.
The new grammar became:
still as exhibit
→ detail as inspection
→ canonical video as incident
→ final frame as residue
A three-god proof—Saint Draft, Crosswalk Prophet, and Cupboard Listener—established the private, municipal, and conflicting-witness channels. Only after that proof was approved were the remaining voices generated and processed.
Phase 8: the first evidence film
The first complete evidence master was technically successful: sixty voice units, ten chapters, complete decodes, correct streams, and verified audio levels.
But review exposed a larger lesson: technical alignment is not semantic alignment.
Fixed timing templates meant voices began at channel-wide offsets rather than at the meaning of each sentence. The film was also square, despite the canonical assets being 4:5. Typography behaved like a graphic overlay rather than part of the Cabinet's visual architecture.
Phase 9: semantic and native-aspect conform
A frame-quantized timing manifest was built for all sixty gods. The scripts were treated as three semantic beats:
ordinary circumstance → portrait/detail
impossible event → manifestation + audio relic
unresolved implication → residue
The film was rebuilt at 1080×1350. Every manifestation and relic began on the same frame. Voice and lower audio layers were mixed through sidechain relationships. Video and audio timestamps were normalized to zero.
This improved the film, but another review exposed a visible stop-start: the edit returned to the opening still for its last frames.
Phase 10: continuous website-slot edition
The final conform removed the return completely:
moving portrait
→ dissolve into canonical manifestation
→ moving residue from the actual final frame
→ transition into the next already-moving portrait
The film's graphics were also rebuilt to match the website's slot component:
- Framed media
- Number / 60
- Evidence channel
- God name
- Reinforcing domain
- Metadata beneath the image
- Helvetica Neue and the established Cabinet palette
The entire slot—media and metadata—moves through a 0.6-second vertical cabinet-scroll transition. The final website-slot master runs 11:53.15 and contains all sixty gods.
Phase 11: the grid becomes a timeline
A second independent website, evidence-cabinet.html, synchronized the film to the complete grid.
The site derives exact master, active, incident, transition, and seek times for each god. While the film plays:
- Future gods remain still
- An entering god receives an incoming state
- The active god gains a red evidence frame and progress rule
- One shared muted video decoder displays the matching manifestation inside the tile
- Past gods are marked as entered
Clicking a tile seeks directly into the master and creates a hash such as #god-35. The film's playhead therefore travels through the Cabinet rather than sitting beside a decorative grid.
Responsive QA caught another production issue: a height-driven portrait player could outgrow its desktop column on tall intermediate screens. One shared width variable now binds the label, player, metadata, and controls. On stacked screens, the 4:5 player and control bar use the full viewport width and become non-sticky so the grid remains reachable.
Phase 12: distribution
The final hosting package contains:
- The original Cabinet
- The synchronized Evidence Cabinet
- Complete evidence master
- 60 canonical stills
- 60 manifestation videos
- 60 browser audio relics
- Timeline data
- Deployment configuration and documentation
- Checksummed asset manifest
The package contains no API keys, signed TITLES URLs, or runtime TITLES dependency.
Key decisions that changed the work
- Build a world bible before scaling generation.
- Test artist models before committing to sixty works.
- Treat motion as a domain-specific event.
- Audit complete coverage instead of assuming chapter films contained every asset.
- Reject the polished default narrator.
- Cast a recurring town and process voices into physical recording systems.
- Cancel unnecessary new visual generation.
- Use existing stills and final decoded frames as editorial material.
- Distinguish technical completion from semantic alignment.
- Preserve the native aspect ratio.
- Make film graphics inherit the website's component logic.
- Never return to a starting still at the end of a moving event.
- Turn the collection grid into the film's temporal interface.
- Verify every deliverable through real decode, browser state, and path checks.
Outcome
The final project is not one image series or one film. It is a complete system:
- A cosmology
- A canonical media library
- A sound world
- A recurring civic cast
- Ten liturgies
- A feature-length municipal record
- An interactive reliquary
- A synchronized timeline website
- A reproducible and deployable production package
Its 0→1 achievement was not the number of generated outputs. It was transforming those outputs into a bounded, navigable world with rules, memory, and a final form that could survive review.