file_id.diz
I Draw a Line Here
Assembly Summer '26 — AI Coding (Vibe Demo) entry
CONCEPT
The demo obeys one absolute visual rule: every visible element, including
all lettering, is drawn only as straight line segments between two points.
The entire show lives in two CSV files: Graphics.csv holds timestamped
normalized line segments, and Music.csv holds the soundtrack as timestamped
normalized sample levels under the same hold-until-changed model. Every
player and renderer in the repository is a generic interpreter of that
data.
The soundtrack samples "Electronic Electro" by Watermello (composer
Daniil Kharlamov), Pixabay track 477141. The track page presents it under
the Pixabay Content License and marks it as Content ID registered. The
repository's own tools/sample-track.py resamples it into the same
normalized sample-and-hold CSV rows as everything else. Music.csv is
intended only as embedded music for this demo, not for standalone
extraction or redistribution. Source, official terms, Content ID notes,
and the download records to retain are in docs/MUSIC_LICENSE.md. A fully
synthesized alternative score (tools/compose-music.py) and an earlier
piano score (git tag soundtrack-piano) remain in the repository.
AI TOOLS USED
The code was written with two AI coding agents, per the compo rules:
- ChatGPT (OpenAI Codex) — project code, including the players, editors,
the 1080p60 MP4 renderer (tools/LineCSVMP4Renderer.swift), and the
alternative native 3D Metal renderer (Sources/LineMetal).
- Claude (Anthropic Claude Code) — project code, rules-compliance fixes,
the release tooling, the image-to-line-segment vectorizer
(tools/image-to-lines.py, OpenCV Canny/contour edge detection, not a
generative model), and render verification.
The demo content (the line data in Graphics.csv) is a mix of:
- hand-drawn scenes made with the repository's own line editors
(web/editor.html and the LineEditor macOS app), and
- 27 scenes algorithmically traced from public-domain artworks (all
artists died 1955 or earlier; no fan art of copyrighted work) using the
vectorizer above, curated down from a larger review draft covering
nearly every candidate in docs/PUBLIC_DOMAIN_ART.md. The underlying
works are public domain in Finland; several exact modern reference
photographs are CC0, CC BY, or CC BY-SA rather than public domain.
Required photographer credits, licences, change notices, exact source
links, and object records are in docs/ART_SOURCE_LICENSES.md and
docs/THIRD_PARTY_NOTICES.md. None of the scenes is fan art of a
copyrighted work. The same sources and licences must be declared in
the Partyman entry form, not only in this archive.
RUNNING THE ENTRY
Primary submitted executable (macOS 14 or newer, Apple Silicon or Intel):
Double-click "I Draw a Line Here.app".
The signed, self-contained app reads Graphics.csv and Music.csv from
its own resources, starts at time zero, and enters full screen.
ESC exits. Space pauses, R rewinds, F toggles full screen, and the
arrow keys seek by five seconds.
The signed "i-draw-a-line-here-installer.pkg" installs the same app into
/Applications. Installing is optional: the app in the ZIP runs directly.
Source-tree browser playback (any modern desktop browser):
./tools/serve-web.sh # then open the printed local URL
Press "Present fullscreen": the player rewinds, waits ten seconds, and
plays the full show. The mouse cursor is hidden while presenting. ESC
leaves fullscreen at any time.
Source-tree native Metal performance:
./tools/run-metal-hallucination.sh
This full-colour renderer hallucinates every non-empty CSV scene into a
deterministic volumetric wireframe: front and back surfaces, side
walls, ribs, and internal trusses. Eight geometry-derived model
families and ten different camera choreographies replace a repeated
spin. All ten are used before repeating, and they include true
lateral, vertical, depth-only, target-scan, held-rear, staged, and
orbital camera languages rather than variants of one centre orbit.
Structural core strokes are 2x for the large 1080p party screen; only
the strongest current-shell onsets briefly reach 3.5x.
Tiny, short-lived four-ray pixel glints attach to the picture's base
source strokes, not to the musical bassline.
Every visible mark remains a straight line. The renderer itself adds
no authored visual or audio asset beyond the two declared CSV inputs.
Alternative native Metal 1080p60 capture:
./tools/render-metal-1080p60.sh \
artifacts/i-draw-a-line-here-volumetric-1080p60.mp4
Native macOS frame preview: swift run LineDemo --time 0.03
Deterministic playback: the show is a fixed CSV timeline and renders the
same way on every run.
VIDEO CAPTURE
The intended submitted 1080p60 video is produced with the repository's
own deterministic volumetric Metal renderer from the same Graphics.csv
and Music.csv:
./tools/render-metal-1080p60.sh \
artifacts/i-draw-a-line-here-volumetric-1080p60.mp4
It outputs 1920x1080 H.264 at 60 fps with 4x MSAA and a 48 kHz mono AAC
soundtrack mixed from Music.csv. The signed universal app, signed
installer, capture, screenshot, nested source-code ZIP, licence records,
and one final outer ZIP are generated with:
./tools/build-submission.sh
LENGTH
Exactly 2:28.3 — the content runs at double pace, far under the
compo's five-minute maximum. The timeline opens with a real-time
5-second broadcast-style blank leader (no image, no sound); the show
and the soundtrack both begin together at 0:05. The soundtrack ends
unchanged at 2:18.3; the credit card remains face-on for another five
seconds through 2:23.3, followed by five seconds of black and silence.
Graphics.csv and Music.csv declare duration_seconds=148.3.
COMPO COMPLIANCE / FINAL SUBMISSION CHECKLIST
Official Assembly Summer 2026 AI Coding (Vibe Demo) rules:
https://assembly.org/en/events/summer26/info-en/demo-competition-rules#AI_Coding_Vibe_Demo
Official copyright guidance:
https://assembly.org/en/events/summer26/info-en/demo-competition-rules#On_Copyright
[x] Executable real-time production: LineMetal renders the CSV data live.
[x] Duration: 148.3 seconds, below the five-minute maximum.
[x] Repeatability: fixed CSV inputs and deterministic geometry, effects,
camera scheduling, still rendering, and movie rendering.
[x] Presentation controls: full-screen mode hides the mouse cursor and
ESC exits the native production at any time.
[x] Platform is stated: macOS 14 or newer with Apple Metal.
[x] AI tools and their roles are listed above.
[x] Build and include the native executable in the submitted archive.
[x] Render, inspect, and include the required 1080p video capture; the
provided deterministic target is 1920x1080 at 60 fps.
[x] Render, inspect, and include the required screenshot.
[x] Prepare macOS 14+/Apple Metal and exact run instructions for the
Partyman submission fields in docs/SUBMISSION_FORM.md; coordinate
own-machine capture or proof with CompoCrew if requested.
[ ] Declare and link every artwork/reference-image source and licence in
the Partyman entry form. The underlying works are public domain, but
the modern reference photographs identified in the ledger retain
their stated CC terms.
[ ] Declare the Pixabay track, its source URL, and applicable licence in
the entry form; obtain and retain its download certificate as detailed
in docs/MUSIC_LICENSE.md.
[ ] Ask CompoCrew to confirm the sampled stock track is acceptable for
this compo and retain the written answer with the release records.