Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

lacma-2026 page: fix missing 'n' + drop ambient loop (single video, v=9)

Two issues landed together:

1. The first 'n' of 'notepat' was silently dropped by the --demo runner.
Root cause in fedac/native/macos/main.c: the boot-animation loop
advanced demo_cur past every event whose timestamp had arrived,
including KEY events. When the key's t lined up with the last boot
frame (~t=2.0s vs boot anim's 120 frames at 60fps), the key was
consumed by the boot loop (which does not dispatch keys — no piece
loaded yet) and the main piece loop never saw it.

Fix: in the boot-loop demo dispatch, break at the first KEY event
without advancing demo_cur. Keys are left in place for the main
piece loop to fire once the piece is up. (Committed to the
nervous-newton-134547 worktree; this commit only ships the resulting
re-rendered video.)

2. Drop the ambient-loop video per @jeffrey — just one video now.
The narrated + captioned version is the lead, autoplays muted,
click to unmute for TTS.

Assets refreshed on the CDN:
ac-native-demo-narrated.mp4 465 KB · 22.16s
ac-native-demo-narrated.webm 521 KB
ac-native-demo-narrated-poster.jpg (t=7.5 — 'notepa|' with
notepat autocomplete)
Deleted from the CDN:
ac-native-demo.{mp4,webm}, ac-native-demo-poster.jpg

Page changes:
- demo-tabs bar removed, single video in demo-frame
- byline collapses into "22 s · click to unmute · ..." in place of the
old narrated/ambient tab hints
- all ?v=8 → ?v=9
- duration hint in Application-at-a-Glance Video row: 20 s → 22 s

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

+6 -38
+6 -38
system/public/lacma-2026/index.html
··· 610 610 611 611 <!-- ── DEMO VIDEO ─────────────────────────── --> 612 612 <section class="demo" id="demo"> 613 - <div class="demo-tabs"> 614 - <div class="demo-tab active" data-src="ac-native-demo-narrated" data-poster="ac-native-demo-narrated-poster">narrated + captioned<span class="hint">20 s · click unmute</span></div> 615 - <div class="demo-tab" data-src="ac-native-demo" data-poster="ac-native-demo-poster">ambient loop<span class="hint">20 s · muted</span></div> 616 - </div> 617 613 <div class="demo-pair"> 618 614 <div class="demo-frame"> 619 615 <video id="demo-video" 620 - poster="https://assets.aesthetic.computer/lacma-2026/ac-native-demo-narrated-poster.jpg?v=8" 616 + poster="https://assets.aesthetic.computer/lacma-2026/ac-native-demo-narrated-poster.jpg?v=9" 621 617 autoplay muted loop playsinline controls preload="metadata"> 622 - <source src="https://assets.aesthetic.computer/lacma-2026/ac-native-demo-narrated.webm?v=8" type="video/webm"> 623 - <source src="https://assets.aesthetic.computer/lacma-2026/ac-native-demo-narrated.mp4?v=8" type="video/mp4"> 624 - Your browser doesn't support HTML5 video. <a href="https://assets.aesthetic.computer/lacma-2026/ac-native-demo-narrated.mp4?v=8">Download the MP4</a>. 618 + <source src="https://assets.aesthetic.computer/lacma-2026/ac-native-demo-narrated.webm?v=9" type="video/webm"> 619 + <source src="https://assets.aesthetic.computer/lacma-2026/ac-native-demo-narrated.mp4?v=9" type="video/mp4"> 620 + Your browser doesn't support HTML5 video. <a href="https://assets.aesthetic.computer/lacma-2026/ac-native-demo-narrated.mp4?v=9">Download the MP4</a>. 625 621 </video> 626 622 </div> 627 623 <div class="demo-hardware"> ··· 639 635 <div class="sequence"> 640 636 <span class="step">boot</span><span class="arrow">→</span><span class="step">type 'notepat'</span><span class="arrow">→</span><span class="step">notepat</span><span class="arrow">→</span><span class="step">play C note</span><span class="arrow">→</span><span class="step">back to prompt</span><span class="arrow">→</span><span class="step">off</span><span class="arrow">→</span><span class="step">bye @jeffrey</span> 641 637 </div> 642 - <div class="byline">single-capture demo via the macOS ac-native host's <code>--demo</code> flag · boot → prompt → notepat → prompt → "off" → shutdown, all one run · captions and TTS rendered natively by AC Native itself</div> 638 + <div class="byline">22 s · click to unmute · single-capture demo via the macOS ac-native host's <code>--demo</code> flag — boot → prompt → notepat → prompt → "off" → shutdown, all one run · captions and TTS rendered natively by AC Native itself</div> 643 639 </div> 644 - <script> 645 - (() => { 646 - const tabs = document.querySelectorAll(".demo-tab"); 647 - const video = document.getElementById("demo-video"); 648 - const ASSET_BASE = "https://assets.aesthetic.computer/lacma-2026"; 649 - const V = "?v=8"; // bump when videos are re-rendered 650 - tabs.forEach(tab => tab.addEventListener("click", () => { 651 - if (tab.classList.contains("active")) return; 652 - tabs.forEach(t => t.classList.remove("active")); 653 - tab.classList.add("active"); 654 - const base = tab.dataset.src; 655 - const poster = tab.dataset.poster; 656 - const wasMuted = video.muted; 657 - video.pause(); 658 - video.innerHTML = ` 659 - <source src="${ASSET_BASE}/${base}.webm${V}" type="video/webm"> 660 - <source src="${ASSET_BASE}/${base}.mp4${V}" type="video/mp4">`; 661 - video.poster = `${ASSET_BASE}/${poster}.jpg${V}`; 662 - // Narrated tab → prefer unmuted so VO plays (browser may block). 663 - video.muted = base.includes("narrated") ? false : true; 664 - video.load(); 665 - video.play().catch(() => { 666 - video.muted = wasMuted; 667 - video.load(); 668 - }); 669 - })); 670 - })(); 671 - </script> 672 640 </section> 673 641 674 642 <!-- ── APPLICATION AT A GLANCE (form mirror) ─────── --> ··· 761 729 </div> 762 730 </dd> 763 731 764 - <dt>Video<span class="cap">under 5 min · optional · ours: 20 s</span></dt> 732 + <dt>Video<span class="cap">under 5 min · optional · ours: 22 s</span></dt> 765 733 <dd>Two cuts of the same 23-second demo, captured natively from AC Native hardware. An <em>ambient loop</em> (muted, plays silently on page load) and a <em>narrated + captioned</em> version (voiceover + baked-in subtitles) produced by a reusable pipeline at <a class="jump" href="https://github.com/whistlegraph/aesthetic-computer/blob/main/tools/vo-pipeline.mjs">tools/vo-pipeline.mjs</a>. <a class="jump" href="#demo">Watch above ↑</a>. A longer cut with prompt-transitions and a shutdown "bye @jeffrey" animation (still being written in C for the native binary) is the next capture. Narration script: <a class="jump" href="https://github.com/whistlegraph/aesthetic-computer/blob/main/grants/lacma-2026/demo-narration.md">demo-narration.md</a>.</dd> 766 734 767 735 <dt>Lineage check<span class="cap">past Lab cohort</span></dt>