Skip to content

An animation for the Artifactory - #232

Closed
scgopi wants to merge 2 commits into
mainfrom
marketing/artifactory-animation
Closed

An animation for the Artifactory#232
scgopi wants to merge 2 commits into
mainfrom
marketing/artifactory-animation

Conversation

@scgopi

@scgopi scgopi commented Sep 1, 2026

Copy link
Copy Markdown
Owner

A designed HTML figure explaining the Artifactory (#229), in the house style of the
existing marketing/animations/ figures — 1200×675, same palette and type as
loops-talk, stepped through window.__seek and rendered by ./build.sh artifactory.

The story, four beats, the last one longest. node send and edges are addressed:
the figure opens on a drawn wire between two loops and a command carrying a uuid the
sender had to already know. Then Fixer posts to the board — the pip travels to the
Artifactory along no wire at all, because nothing was wired and nobody was named.
Fixer resolves, is deleted, and the lane closes over it while its post's byline becomes
Fixer (deleted). Finally Auditor, created three days later and wired to nothing, sees
the unread count in status and reads the note with one sync. That last beat gets a
third of the runtime, because it is the claim: notes outlive their authors.

Nothing on screen is invented. Every command and every line of output is what the
merged code prints — renderPosted, renderArtifactory's
<project> artifactory, unread: N post header and
#<id> (topic) from <author> at <stamp> — <body> rows, renderArtifactoryStatusLine,
and the empty-board line — with the byline taken from
ArtifactoryPost.withAuthorDeleted. A new loop's lastArtifactoryRead is nil, so its
first sync genuinely does see the whole board.

Duration 30.0s, 25fps capture / 12.5fps GIF
GIF 766,186 bytes (~748 KiB), inside the ~900 KB README/site budget
MP4 608,805 bytes, 1600px CRF 18
Deterministic ./build.sh artifactory twice → identical sha256 on all three outputs

Two commits, and the first needs a decision. marketing/animations/ has never been
tracked — not ignored, just never committed — so a figure landing on its own would be a
GIF nobody else could rebuild or check. The first commit brings the four renderer
scripts (build.sh, render.mjs, probe.mjs, package.json/lock) along, plus a
.gitignore for frames/ and node_modules. The other nine local figures are not
included, which leaves one wart: ./build.sh with no arguments still names them in its
default list and will fail on a fresh clone. ./build.sh artifactory works. Say the
word if you would rather the whole directory came across, or none of it.

🤖 Generated with Claude Code

https://claude.ai/code/session_011b4JC1STxSMfbx7fJQv5wz

scgopi and others added 2 commits September 1, 2026 07:53
The HTML→frames→GIF/MP4 pipeline has lived untracked in marketing/animations.
A committed figure whose renderer is not in the tree cannot be rebuilt or
checked by anyone else, so the four scripts come along with it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011b4JC1STxSMfbx7fJQv5wz
A 30s designed figure, marketing/animations/artifactory.html, rendered by
./build.sh artifactory. Four beats, the last one longest:

1. node send and edges are addressed — a drawn wire, and a command carrying
   a uuid the sender had to already know.
2. Fixer posts to the board. The pip travels to the Artifactory along no wire
   at all; nothing was created to carry it and nobody is named.
3. Fixer resolves and is deleted. Its card goes, the lane closes over it, and
   the post's byline becomes "Fixer (deleted)" — the handle goes, the note
   does not.
4. Auditor, created three days later and wired to nothing, sees the unread
   count in status and reads the note with one sync.

Every command and every line of output is what the merged code prints —
renderPosted, renderArtifactory's "<project> artifactory, unread: N post"
header and "#<id> (topic) from <author> at <stamp> — <body>" rows,
renderArtifactoryStatusLine, and the empty-board line — with the byline
taken from ArtifactoryPost.withAuthorDeleted. A new loop's cursor is nil, so
its first sync really does see the whole board.

766,186 bytes as a GIF, inside the ~900 KB the site and README can carry.
Frames are stepped through window.__seek, so a re-run reproduces it byte for
byte; verified.

The renderer comes along in its own commit: marketing/animations has been
untracked, and a committed figure nobody else can rebuild is not much of one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011b4JC1STxSMfbx7fJQv5wz
@scgopi

scgopi commented Sep 1, 2026

Copy link
Copy Markdown
Owner Author

Closing — marketing/ is kept local and is not intended to merge.

@scgopi scgopi closed this Sep 1, 2026
@scgopi
scgopi deleted the marketing/artifactory-animation branch September 1, 2026 15:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant