Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

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

chore: add grants/lacma-2026, nix log level tweak, report, gitignore .toc

- grants/lacma-2026: LACMA 2026 application draft (tex + pdf + md)
- fedac/nixos: bump systemd log_level from crit to warning
- reports: ac-native nix vs bare-metal pipeline analysis
- .gitignore: add papers/**/*.toc

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

+580 -1
+1
.gitignore
··· 366 366 papers/**/*.blg 367 367 papers/**/*.log 368 368 papers/**/*.out 369 + papers/**/*.toc 369 370 370 371 # babypat build artifacts 371 372 fedac/babypat/*.o
+1 -1
fedac/nixos/modules/image.nix
··· 21 21 "loglevel=0" 22 22 "rd.systemd.show_status=false" 23 23 "systemd.show_status=false" 24 - "systemd.log_level=crit" 24 + "systemd.log_level=warning" 25 25 "vt.global_cursor_default=0" 26 26 "splash" 27 27 ];
+157
grants/lacma-2026/LACMA-2026-APPLICATION-DRAFT.md
··· 1 + # LACMA Art + Technology Lab 2026 — Application Draft 2 + 3 + > **Deadline:** April 22, 2026, 11:59 PM PST 4 + > **Submit at:** https://lacma.submittable.com/submit/348727/2026-art-technology-lab-grants 5 + > **Questions:** lab@lacma.org 6 + 7 + --- 8 + 9 + ## Project Name 10 + 11 + Aesthetic Computer: Bare Metal Instruments 12 + 13 + ## Three Descriptive Words 14 + 15 + instrument, language, network 16 + 17 + ## One-Sentence Project Description 18 + 19 + Aesthetic Computer is a bare-metal creative computing system — custom hardware, a handmade programming language, and a social network — that reimagines the personal computer as a live musical instrument for art. 20 + 21 + --- 22 + 23 + ## Full Project Description (500 words max) 24 + 25 + _[~495 words]_ 26 + 27 + Aesthetic Computer (AC) is a creative computing platform built from first principles. It consists of three interlocking layers: a bare-metal operating system that boots directly into art software, a custom programming language called KidLisp for generative art, and a social network where anyone can publish and share interactive programs called "pieces." 28 + 29 + The core provocation is simple: what happens when you strip away the consumer operating system — the notifications, the app stores, the surveillance — and build a computer that does nothing but help you make things? 30 + 31 + **AC Native** is our answer in hardware. It is a Linux kernel that boots from a USB stick on any x86 laptop in under two seconds, running a custom C runtime as PID 1 — no desktop, no window manager, no browser. The system renders directly to the framebuffer, reads input from raw device events, and synthesizes audio sample-by-sample through ALSA at 192kHz. The result is a zero-latency creative instrument: a 7,800-line musical composition tool called *notepat* currently ships as the default piece, turning any laptop into a polyphonic synthesizer with room reverb, waveform selection, and time-of-day-responsive visuals. 32 + 33 + **KidLisp** is a minimal Lisp dialect we designed specifically for generative art. With 118 built-in functions across 12 categories, it provides an accessible entry point for non-programmers while remaining expressive enough for complex compositions. Over 16,000 KidLisp programs have been written on the platform to date. KidLisp programs can be minted as on-chain "keeps" on Tezos, establishing provenance without requiring artists to understand blockchain infrastructure. 34 + 35 + **The Network** ties it together. Aesthetic Computer hosts 359 built-in pieces and 265 user-published pieces across 2,800+ registered handles. Every piece is URL-addressable and instantly shareable via QR code. The platform supports real-time multiplayer through WebSocket and UDP channels — people can draw, compose, and play together. 36 + 37 + During the grant period, we propose to develop AC Native from a working prototype into a distributable creative instrument and public installation. Specifically: 38 + 39 + 1. **Portable Instruments** — Produce a set of USB-bootable AC Native drives preloaded with curated pieces (music, drawing, generative art) that visitors and workshop participants can take home and boot on their own laptops. 40 + 41 + 2. **KidLisp Workshop Series** — Develop and deliver hands-on workshops where participants write KidLisp programs that run on AC Native hardware in real time, experiencing the full loop from code to sound and image with no intermediary. 42 + 43 + 3. **Public Installation** — Design an installation of multiple AC Native stations at LACMA where visitors encounter creative computing as a direct, embodied experience — more like sitting down at a piano than opening an app. 44 + 45 + 4. **Open Documentation** — Publish the complete build pipeline, hardware compatibility guide, and workshop curriculum so other artists and institutions can replicate and extend the system. 46 + 47 + This project is not about building a product. It is about demonstrating that the personal computer can still be a site of artistic invention — that the instrument is not yet finished being designed. 48 + 49 + --- 50 + 51 + ## Artist / Collective Bio 52 + 53 + _[Update with Jeffrey's full bio/CV — below is a placeholder draft]_ 54 + 55 + Jeffrey Scudder is an artist and software developer whose practice centers on creative computing, interface design, and digital culture. He is the creator of Aesthetic Computer, an open-source platform for interactive art, and its predecessor No Paint (Hacker News front page, 2020). His work explores the computer as an expressive instrument rather than a productivity tool. 56 + 57 + Scudder has exhibited and presented work internationally. His musical instrument *notepat* reached the front page of Hacker News in 2024. He maintains an active creative computing community of 2,800+ users and has developed KidLisp, a custom programming language for generative art. His work is published under an open-source license and is migrating to decentralized infrastructure via AT Protocol. 58 + 59 + ORCID: 0009-0007-4460-4913 60 + 61 + _[TODO: Add exhibition history, education, institutional affiliations, press]_ 62 + 63 + --- 64 + 65 + ## Artistic Merit Statement (100 words max) 66 + 67 + _[~95 words]_ 68 + 69 + Aesthetic Computer treats the computer itself as an unfinished instrument — a site for ongoing artistic invention rather than a fixed consumer product. By building from bare metal (custom kernel, framebuffer rendering, sample-level audio synthesis), we recover the directness that early personal computing promised but commercial platforms abandoned. The work exists at the intersection of software art, instrument design, and language design: KidLisp is simultaneously a tool and a medium, and AC Native transforms commodity laptops into dedicated creative instruments. The artistic claim is that how we build computers is itself a creative act with cultural consequences. 70 + 71 + --- 72 + 73 + ## Technology and Culture Dialogue Statement (100 words max) 74 + 75 + _[~98 words]_ 76 + 77 + Consumer operating systems have become attention-extraction machines — optimized for engagement metrics, not creative agency. AC Native offers a counter-model: a computer that boots in two seconds, runs one piece of art software, and does nothing else. This is not nostalgia for early computing but a forward-looking argument that the personal computer's design is a cultural question, not a settled technical one. KidLisp extends this argument to programming itself — demonstrating that a language can be designed for artistic expression rather than industrial production. The 16,000+ programs written in KidLisp suggest this resonates beyond our own practice. 78 + 79 + --- 80 + 81 + ## Public Engagement Plan (100 words max) 82 + 83 + _[~97 words]_ 84 + 85 + We propose three forms of public engagement during the development period. First, a series of hands-on KidLisp workshops at LACMA where participants write generative art programs that run on AC Native hardware — no prior coding experience required. Second, an installation of multiple AC Native stations where visitors experience creative computing as a direct, instrument-like interaction. Third, open "build days" where we assemble USB drives and document the process publicly, inviting visitors into the making of the system itself. All workshop curricula, build documentation, and software will be published openly for other artists and institutions to adopt. 86 + 87 + --- 88 + 89 + ## Implementation Plan 90 + 91 + | Phase | Timeline | Milestones | 92 + |-------|----------|------------| 93 + | **1. Hardware Refinement** | Fall 2026 | Expand AC Native hardware compatibility; develop multi-piece boot menu; optimize for 5+ laptop models commonly available at institutions | 94 + | **2. Workshop Development** | Winter 2026–27 | Design KidLisp workshop curriculum (3 difficulty levels); test with pilot group; produce printed reference cards | 95 + | **3. Installation Design** | Spring 2027 | Design multi-station installation layout; produce 20+ bootable USB drives; develop kiosk-mode security for public use | 96 + | **4. Public Programs** | Summer–Fall 2027 | Deliver 4–6 workshops at LACMA; install and maintain public AC Native stations; collect participant feedback | 97 + | **5. Documentation & Release** | Winter 2027–28 | Publish complete build guide, workshop curriculum, and hardware compatibility list; present at LACMA Biennial Symposium (2027) | 98 + 99 + --- 100 + 101 + ## Budget (Itemized) 102 + 103 + | Item | Cost | 104 + |------|------| 105 + | Artist fee (24 months) | $20,000 | 106 + | Hardware — laptops for installation (5 × $400 refurbished) | $2,000 | 107 + | Hardware — USB drives, cables, peripherals | $500 | 108 + | Workshop materials (printed guides, reference cards) | $1,000 | 109 + | Travel to LA (4 trips × $1,200) | $4,800 | 110 + | Accommodation during LA visits (30 nights × $150) | $4,500 | 111 + | NuPhy analog keyboards for installation (5 × $120) | $600 | 112 + | Fabrication — installation furniture/mounts | $2,500 | 113 + | Software infrastructure (hosting, CDN, domain) | $1,200 | 114 + | Documentation production (video, photography) | $2,000 | 115 + | Contingency (10%) | $3,900 | 116 + | **Total** | **$43,000** | 117 + 118 + _[Adjust amounts based on actual needs — this leaves $7,000 headroom under the $50,000 cap]_ 119 + 120 + --- 121 + 122 + ## Other Funding Sources 123 + 124 + _[List any other grants, sponsorships, or institutional support — or note "None" if this is the sole funding source]_ 125 + 126 + - Open-source sponsorship via GitHub Sponsors and Liberapay (covers ongoing server costs) 127 + - _[Add others if applicable]_ 128 + 129 + --- 130 + 131 + ## Images / Schematics (up to 5, JPEG) 132 + 133 + _[TODO: Prepare and attach]_ 134 + 135 + 1. **AC Native booting on a laptop** — photo of bare-metal boot sequence, USB stick visible 136 + 2. **notepat running** — screenshot of the musical instrument with key labels, status bar, time-of-day tint 137 + 3. **KidLisp generative art** — grid of KidLisp program outputs showing range of visual expression 138 + 4. **Aesthetic Computer web platform** — screenshot showing piece navigation, prompt interface, social features 139 + 5. **Installation concept sketch** — diagram of proposed multi-station LACMA installation layout 140 + 141 + --- 142 + 143 + ## Optional Video (under 5 min, hyperlinked) 144 + 145 + _[TODO: Record a short demo showing AC Native booting from USB, playing notepat, and writing a KidLisp program. Upload and link here.]_ 146 + 147 + --- 148 + 149 + ## Notes for Jeffrey 150 + 151 + - **Deadline is April 22** — 16 days from now 152 + - Bio section needs your real CV/exhibition history 153 + - Budget is a starting draft — adjust the artist fee and travel based on your actual needs 154 + - The 5 images are critical — strong visuals of AC Native and notepat will carry the application 155 + - A short video demo would be very compelling given the "instrument" framing 156 + - Anthropic is listed as a LACMA partner — worth noting your use of Claude Code in the development process if you think that strengthens the connection 157 + - The "safe-to-fail" framing is a gift — lean into the experimental, prototype nature of the work
grants/lacma-2026/figures/pals.pdf

This is a binary file and will not be displayed.

grants/lacma-2026/lacma-2026.pdf

This is a binary file and will not be displayed.

+301
grants/lacma-2026/lacma-2026.tex
··· 1 + % !TEX program = xelatex 2 + \documentclass[12pt,letterpaper]{article} 3 + 4 + % === GEOMETRY (generous margins, roomy) === 5 + \usepackage[top=1in, bottom=1in, left=1.1in, right=1.1in]{geometry} 6 + 7 + % === FONTS === 8 + \usepackage{fontspec} 9 + \setmainfont{Latin Modern Sans} 10 + \setmonofont{Latin Modern Mono}[Scale=0.85] 11 + 12 + \newfontfamily\acbold{ywft-processing-bold}[ 13 + Path=../../system/public/type/webfonts/, 14 + Extension=.ttf 15 + ] 16 + 17 + % === PACKAGES === 18 + \usepackage{xcolor} 19 + \usepackage{enumitem} 20 + \usepackage{tabularx} 21 + \usepackage{fancyhdr} 22 + \usepackage{graphicx} 23 + \usepackage{ragged2e} 24 + \usepackage{microtype} 25 + \usepackage{eso-pic} 26 + \usepackage{tikz} 27 + \usepackage{hyperref} 28 + 29 + \graphicspath{{figures/}} 30 + 31 + % === COLORS === 32 + \definecolor{acpink}{RGB}{180,72,135} 33 + \definecolor{acpurple}{RGB}{120,80,180} 34 + \definecolor{acgray}{RGB}{119,119,119} 35 + \definecolor{ruleclr}{RGB}{200,200,200} 36 + 37 + % === PALS LOGO (title page only, upright) === 38 + % Applied via \AddToShipoutPicture* (one-shot, next page only) 39 + % Called just before \begin{document} 40 + 41 + % === HYPERREF === 42 + \hypersetup{ 43 + colorlinks=true, 44 + linkcolor=acpurple, 45 + urlcolor=acpurple, 46 + pdfauthor={Jeffrey Alan Scudder}, 47 + pdftitle={LACMA Art + Technology Lab 2026: Aesthetic Computer}, 48 + } 49 + 50 + % === HEADER/FOOTER === 51 + \pagestyle{fancy} 52 + \fancyhf{} 53 + \renewcommand{\headrulewidth}{0pt} 54 + \fancyfoot[C]{\small\color{acgray}\thepage} 55 + 56 + % === LISTS === 57 + \setlist[enumerate]{leftmargin=1.6em, itemsep=0.5em, parsep=0.1em} 58 + \setlist[itemize]{leftmargin=1.4em, itemsep=0.3em} 59 + 60 + % === PARAGRAPH === 61 + \setlength{\parindent}{0em} 62 + \setlength{\parskip}{0.6em} 63 + \RaggedRight 64 + 65 + % === HELPERS === 66 + \newcommand{\ac}{Aesthetic{\color{acpink}.}Computer} 67 + \newcommand{\achead}[1]{% 68 + \vspace{1.2em}% 69 + {\color{acpink}\noindent\rule{\textwidth}{1.5pt}}\\[-0.5em] 70 + {\large\bfseries #1}% 71 + \vspace{0.3em}% 72 + } 73 + \newcommand{\acsubhead}[1]{% 74 + \vspace{0.8em}% 75 + {\bfseries #1}% 76 + \vspace{0.2em}% 77 + } 78 + \newcommand{\cvline}[2]{\noindent\makebox[3.2em][l]{\color{acgray}#1}#2\\[0.15em]} 79 + 80 + % =================================================================== 81 + \AddToShipoutPicture*{% 82 + \begin{tikzpicture}[remember picture, overlay] 83 + \node[opacity=0.018, anchor=north west] 84 + at ([xshift=-0.5cm, yshift=0.5cm]current page.north west) 85 + {\includegraphics[width=8cm]{pals}}; 86 + \end{tikzpicture}% 87 + } 88 + \begin{document} 89 + \thispagestyle{fancy} 90 + 91 + % === TITLE === 92 + \begin{center} 93 + {\acbold\fontsize{28pt}{32pt}\selectfont Aesthetic{\color{acpink}.}Computer}\\[6pt] 94 + {\Large Bare Metal Instruments}\\[12pt] 95 + {\color{acgray} 96 + Jeffrey Alan Scudder\\[2pt] 97 + \href{https://justanothersystem.org}{justanothersystem.org}\enspace·\enspace 98 + \href{https://aesthetic.computer}{aesthetic.computer}\enspace·\enspace 99 + \href{mailto:me@jas.life}{me@jas.life}\\[2pt] 100 + ORCID: 0009-0007-4460-4913 101 + } 102 + \end{center} 103 + 104 + \vspace{0.4em} 105 + {\color{acgray}\hrule height 0.5pt} 106 + \vspace{0.4em} 107 + 108 + \begin{center} 109 + {\itshape instrument\enspace·\enspace language\enspace·\enspace network} 110 + \end{center} 111 + 112 + \vspace{0.2em} 113 + {\large\bfseries \ac{} is a bare-metal creative computing system---custom hardware, a handmade programming language, and a social network---that reimagines the personal computer as a live musical instrument for art.} 114 + 115 + \begin{flushright} 116 + \small\color{acgray} LACMA Art + Technology Lab · 2026 Grant Application · Deadline: April 22, 2026 117 + \end{flushright} 118 + 119 + % ======================================================================= 120 + \achead{Project Description} 121 + 122 + \ac{} (AC) is a creative computing platform built from first principles. It consists of three interlocking layers: a bare-metal operating system that boots directly into art software, a custom programming language called KidLisp for generative art, and a social network where anyone can publish and share interactive programs called ``pieces.'' 123 + 124 + The core provocation is simple: what happens when you strip away the consumer operating system---the notifications, the app stores, the surveillance---and build a computer that does nothing but help you make things? 125 + 126 + \textbf{AC Native} is our answer in hardware. It is a Linux kernel that boots from a USB stick on any x86 laptop in under two seconds, running a custom C runtime as PID\,1---no desktop, no window manager, no browser. The system renders directly to the framebuffer, reads input from raw device events, and synthesizes audio sample-by-sample through ALSA at 192\,kHz. The result is a zero-latency creative instrument: a 7,800-line musical composition tool called \textit{notepat} currently ships as the default piece, turning any laptop into a polyphonic synthesizer with room reverb, waveform selection, and time-of-day-responsive visuals. 127 + 128 + \textbf{KidLisp} is a minimal Lisp dialect designed specifically for generative art. With 118 built-in functions across 12 categories, it provides an accessible entry point for non-programmers while remaining expressive enough for complex compositions. Over 16,000 KidLisp programs have been written on the platform. KidLisp programs can be minted as on-chain ``keeps'' on Tezos, establishing provenance without requiring artists to understand blockchain infrastructure. 129 + 130 + \textbf{The Network} ties it together. \ac{} hosts 359 built-in pieces and 265 user-published pieces across 2,800+ registered handles. Every piece is URL-addressable and instantly shareable via QR code. The platform supports real-time multiplayer through WebSocket and UDP channels---people can draw, compose, and play together. 131 + 132 + During the grant period, we propose to develop AC Native from a working prototype into a distributable creative instrument and public installation: 133 + 134 + \begin{enumerate} 135 + \item \textbf{Portable Instruments}---Produce USB-bootable AC Native drives preloaded with curated pieces that visitors and workshop participants can take home and boot on their own laptops. 136 + \item \textbf{KidLisp Workshops}---Hands-on sessions where participants write KidLisp programs that run on AC Native hardware in real time, experiencing the full loop from code to sound and image with no intermediary. 137 + \item \textbf{Public Installation}---Multiple AC Native stations at LACMA where visitors encounter creative computing as a direct, embodied experience---more like sitting down at a piano than opening an app. 138 + \item \textbf{Open Documentation}---Publish the complete build pipeline, hardware compatibility guide, and workshop curriculum so other artists and institutions can replicate the system. 139 + \end{enumerate} 140 + 141 + This project is not about building a product. It is about demonstrating that the personal computer can still be a site of artistic invention---that the instrument is not yet finished being designed. 142 + 143 + % ======================================================================= 144 + \achead{Statements} 145 + 146 + \acsubhead{Artistic Merit} 147 + 148 + \ac{} treats the computer itself as an unfinished instrument---a site for ongoing artistic invention rather than a fixed consumer product. By building from bare metal (custom kernel, framebuffer rendering, sample-level audio synthesis), we recover the directness that early personal computing promised but commercial platforms abandoned. The work sits at the intersection of software art, instrument design, and language design: KidLisp is simultaneously a tool and a medium, and AC Native transforms commodity laptops into dedicated creative instruments. The artistic claim is that how we build computers is itself a creative act with cultural consequences. 149 + 150 + \acsubhead{Technology and Culture} 151 + 152 + Consumer operating systems have become attention-extraction machines---optimized for engagement metrics, not creative agency. AC Native offers a counter-model: a computer that boots in two seconds, runs one piece of art software, and does nothing else. This is not nostalgia for early computing but a forward-looking argument that the personal computer's design is a cultural question, not a settled technical one. KidLisp extends this argument to programming itself---demonstrating that a language can be designed for artistic expression rather than industrial production. The 16,000+ programs written in KidLisp suggest this resonates beyond our own practice. 153 + 154 + \acsubhead{Public Engagement} 155 + 156 + We propose three forms of public engagement. First, hands-on KidLisp workshops at LACMA where participants write generative art programs that run on AC Native hardware---no prior coding experience required. Second, an installation of multiple AC Native stations where visitors experience creative computing as a direct, instrument-like interaction. Third, open ``build days'' where we assemble USB drives and document the process publicly, inviting visitors into the making of the system itself. All curricula, documentation, and software will be published openly for other artists and institutions to adopt. 157 + 158 + % ======================================================================= 159 + \achead{Timeline} 160 + 161 + \renewcommand{\arraystretch}{1.4} 162 + \begin{tabularx}{\textwidth}{@{}lX@{}} 163 + \textbf{Fall 2026} & \textbf{Hardware Refinement}---Expand compatibility; multi-piece boot menu; target 5+ laptop models \\ 164 + \textbf{Winter 26--27} & \textbf{Workshop Dev}---KidLisp curriculum (3 levels); pilot testing; printed reference cards \\ 165 + \textbf{Spring 2027} & \textbf{Installation Design}---Multi-station layout; 20+ bootable USB drives; kiosk-mode security \\ 166 + \textbf{Summer--Fall 27} & \textbf{Public Programs}---4--6 workshops at LACMA; public AC Native stations; feedback \\ 167 + \textbf{Winter 27--28} & \textbf{Documentation}---Open-source build guide, curriculum, compatibility list; LACMA Symposium \\ 168 + \end{tabularx} 169 + \renewcommand{\arraystretch}{1.0} 170 + 171 + % ======================================================================= 172 + \achead{Budget} 173 + 174 + \renewcommand{\arraystretch}{1.3} 175 + \begin{tabularx}{\textwidth}{@{}Xr@{}} 176 + Artist fee (24 months) & \$20,000 \\ 177 + Hardware---laptops for installation (5 × \$400 refurb.) & \$2,000 \\ 178 + Hardware---USB drives, cables, peripherals & \$500 \\ 179 + Workshop materials (printed guides, reference cards) & \$1,000 \\ 180 + Travel to Los Angeles (4 trips × \$1,200) & \$4,800 \\ 181 + Accommodation during LA visits (30 nights × \$150) & \$4,500 \\ 182 + NuPhy analog keyboards for installation (5 × \$120) & \$600 \\ 183 + Fabrication---installation furniture/mounts & \$2,500 \\ 184 + Software infrastructure (hosting, CDN, domain) & \$1,200 \\ 185 + Documentation production (video, photography) & \$2,000 \\ 186 + Contingency (10\%) & \$3,900 \\ 187 + {\color{acgray}\hrulefill} & {\color{acgray}\hrulefill} \\[-0.3em] 188 + \textbf{Total Requested} & \textbf{\$43,000} \\ 189 + \end{tabularx} 190 + \renewcommand{\arraystretch}{1.0} 191 + 192 + \vspace{0.2em} 193 + {\color{acgray} Other funding: open-source sponsorship via GitHub Sponsors and Liberapay (covers ongoing server costs).} 194 + 195 + % ======================================================================= 196 + % CV 197 + % ======================================================================= 198 + 199 + \achead{Curriculum Vitae} 200 + 201 + \begin{center} 202 + {\color{acgray} Jeffrey Alan Scudder · \href{https://justanothersystem.org}{justanothersystem.org} · Los Angeles, CA} 203 + \end{center} 204 + 205 + Jeffrey Alan Scudder (b.\,1989, Assonet, MA) is a painter based in Los Angeles. His work moves between stretched canvas, custom software, and live performance. He is the creator of \ac{}, Whistlegraph, and No Paint. Collections include KADIST (San Francisco) and SMK (National Gallery of Denmark). 206 + 207 + \acsubhead{Education} 208 + 209 + \cvline{2013}{Yale School of Art---MFA (Sculpture)} 210 + \cvline{2011}{Ringling College of Art + Design---BFA (Fine Art)} 211 + \cvline{2010}{AICAD New York Studio Program Residency} 212 + 213 + \vspace{0.3em} 214 + \begin{minipage}[t]{0.47\textwidth} 215 + \acsubhead{Residencies} 216 + \cvline{2026}{Author in Residence, UCLA (Casey Reas)} 217 + \cvline{2019}{Internet Archive Artist in Residence} 218 + \cvline{2018}{Gazell.io Art House Web Residency} 219 + \cvline{2017}{Schloss-Post Web Residencies (ZKM)} 220 + \end{minipage}% 221 + \hfill 222 + \begin{minipage}[t]{0.47\textwidth} 223 + \acsubhead{Teaching} 224 + \cvline{2026}{Author in Residence, UCLA (Casey Reas)} 225 + \cvline{2024}{UCLA DMA Summer: Interactivity} 226 + \cvline{2019}{Asst.\ Professor, Southern Oregon U.} 227 + \cvline{2016}{Visiting Professor, UCLA DMA} 228 + \cvline{13--16}{Adjunct Professor, Parsons} 229 + \end{minipage} 230 + 231 + \acsubhead{Selected Solo Exhibitions} 232 + 233 + \cvline{2022}{Ten Whistlegraphs, Feral File (w/ Whistlegraph)} 234 + \cvline{2018}{Radical Digital Painting: LA, The Newsstand Project \& CAP} 235 + \cvline{2017}{Tumpin, left.gallery (Online)} 236 + \cvline{2017}{Imaginary Screenshots, Whitcher Projects, Los Angeles} 237 + \cvline{2016}{No Paint: Release One, Essex Flowers (Digital Commission)} 238 + 239 + \acsubhead{Selected Group Exhibitions} 240 + 241 + \cvline{2026}{47th Venice Family Clinic Art Exhibition + Auction, Venice, CA} 242 + \cvline{2025}{Turbo Cheap (inaugural exhibition), Los Angeles} 243 + \cvline{2019}{Internet Archive Artist in Residency Exhibition} 244 + \cvline{2018}{OPEN CODES (Schloss Solitude Web Residencies), ZKM, Karlsruhe} 245 + \cvline{2018}{Radical Digital Painting w/ Julia Yerger, Johannes Vogt Gallery, NYC} 246 + \cvline{2018}{Make Pictures (curated), bitforms gallery, NYC} 247 + \cvline{2015}{P.S.1 Commencement, ALLGOLD @ MoMA PS1 Printshop, LIC, NY} 248 + \cvline{2013}{Apartment Show (hosted by Nouriel Roubini), NYC} 249 + \cvline{2009}{The New Easy, Artnews Projects, Berlin} 250 + 251 + \acsubhead{Selected Lectures \& Performances {\normalfont\color{acgray}(65+ total)}} 252 + 253 + \cvline{2026}{NELA Computer Club demos (biweekly), Plot.Place, Chinatown, LA} 254 + \cvline{2022}{The Longest Whistlegraph Ever (so far), New Museum, NYC} 255 + \cvline{2020}{New Dynamic Graphics: Whistlegraph Recital, Korea HCI (keynote)} 256 + \cvline{2019}{New Dynamic Graphics, India HCI 19 (keynote), Hyderabad} 257 + \cvline{2019}{RDP @ RAFLOST Festival, Iceland} 258 + \cvline{2018}{RDP, 35c3: Chaos Communication Congress, Leipzig} 259 + \cvline{2018}{Casey Reas \& JAS in Conversation, bitforms gallery, NYC} 260 + \cvline{2018}{RDP @ 1st Annual HASH Award, ZKM, Karlsruhe} 261 + \cvline{2018}{RDP @ Pioneer Works, Brooklyn, NY} 262 + \cvline{2018}{European tour (15+ venues) w/ Goodiepal \& Pals} 263 + \cvline{2017}{Northeast US Lecture Tour (Parsons, Harvard, Yale, RISD, Temple, Rutgers)} 264 + \cvline{2017}{RDP @ Cafe OTO, London \& Neumeister Bar-Am, Berlin} 265 + 266 + \acsubhead{Collections} 267 + 268 + KADIST Foundation, San Francisco\\ 269 + SMK---National Gallery of Denmark, Copenhagen 270 + 271 + \acsubhead{Selected Press \& Writing} 272 + 273 + \cvline{2024}{\textit{notepat}, Hacker News (front page)} 274 + \cvline{2023}{Whistlegraph---A new audience for generative art, \textit{Dirt}} 275 + \cvline{2023}{Sex: The Whistlegraph Zine, \textit{Sex Magazine}} 276 + \cvline{2020}{No Paint, Hacker News (front page)} 277 + \cvline{2019}{Drawing is the best videogame, \textit{The Creative Independent}} 278 + \cvline{2018}{Radical Digital Painting \& Political Rock, \textit{Are.na Blog}} 279 + \cvline{2018}{\textit{Harvard Advocate}, Winter 2018 (Noise)} 280 + \cvline{2017}{Artist Profile: Jeffrey Alan Scudder, \textit{Rhizome}} 281 + \cvline{2017}{A Manifesto for Radical Digital Painting, \textit{Schlosspost}} 282 + \cvline{2017}{Microsoft Paint's Influence on Artists Is Bigger Than You Might Think, \textit{Artsy}} 283 + 284 + \acsubhead{Software \& Platforms} 285 + 286 + \cvline{2021--}{\ac{}---creative computing platform (\href{https://aesthetic.computer}{aesthetic.computer})} 287 + \cvline{2025--}{AC Native---bare-metal creative computing OS (USB-bootable Linux)} 288 + \cvline{2024--}{KidLisp---programming language for generative art (16,000+ programs)} 289 + \cvline{2024--}{\textit{notepat}---polyphonic synthesizer instrument (7,800 lines)} 290 + \cvline{2016--}{No Paint---radical paint program (\href{https://nopaint.art}{nopaint.art})} 291 + \cvline{2016--}{Whistlegraph---collaborative performance software (w/ Camille Klein \& Alex Freundlich)} 292 + 293 + \vfill 294 + \begin{center} 295 + \color{acgray} 296 + \href{https://justanothersystem.org}{justanothersystem.org}\enspace·\enspace 297 + \href{https://aesthetic.computer}{aesthetic.computer}\enspace·\enspace 298 + LACMA Art + Technology Lab 2026 299 + \end{center} 300 + 301 + \end{document}
+120
reports/2026-04-06-ac-native-nix-vs-baremetal-pipeline-analysis.md
··· 1 + # AC Native OS: NixOS vs Bare-Metal Pipeline Analysis 2 + 3 + **Date:** 2026-04-06 4 + **Context:** First NixOS USB build for @oskie's ThinkPad 11e Yoga. Compared against the existing custom bare-metal build (`ac-os build`). 5 + 6 + ## Session Summary 7 + 8 + Built and iterated on a NixOS-based USB image across ~8 rebuilds. Fixed WiFi (regulatory DB, root privileges, PATH utilities), sound (ALSA config path), KidLisp (esbuild bundle), boot text (quiet params), cursor (Wayland wl_pointer_set_cursor), shutdown (systemctl vs reboot() syscall), and trackpad (double evdev+Wayland input). Each fix required a full rebuild + flash cycle (~15min each). 9 + 10 + ## Head-to-Head Comparison 11 + 12 + | Metric | Bare-Metal (`ac-os build`) | NixOS USB | 13 + |--------|---------------------------|-----------| 14 + | **Image size** | ~200MB | ~7.3GB (trimmed from 9.1GB) | 15 + | **Initrd size** | ~30MB (custom) | ~80MB (trimmed from 1.4GB) | 16 + | **Boot time** | ~2s kernel + ~8ms to piece | ~55s loader + 7s kernel + 17s userspace | 17 + | **Display** | DRM direct | cage Wayland compositor | 18 + | **Input** | evdev direct | evdev -> libinput -> cage -> wl_pointer | 19 + | **Audio** | ALSA direct (192kHz) | ALSA direct (works, needs ALSA_CONFIG_PATH) | 20 + | **WiFi** | wpa_supplicant via system() | Same, but needed regulatory DB + root | 21 + | **Shutdown** | reboot() syscall (PID 1) | systemctl poweroff (via systemd) | 22 + | **Build time** | ~3min (make + initramfs + kernel) | ~10min (nix eval + build + QEMU disk image) | 23 + | **Flash time** | ~30s (200MB) | ~8min (7.3GB) | 24 + | **Reproducibility** | Depends on host packages | Fully reproducible (nix store) | 25 + | **Package management** | Manual (dnf/apt on build host) | Declarative (flake.nix) | 26 + 27 + ## What NixOS Adds 28 + 29 + 1. **Reproducible builds** — flake.lock pins everything; anyone can rebuild the exact same image 30 + 2. **Declarative system config** — hardware.nix, kiosk.nix, wifi.nix are self-documenting 31 + 3. **Broad hardware support** — linux-firmware + latest kernel + all GPU drivers out of the box 32 + 4. **OTA potential** — NixOS profiles could enable atomic A/B upgrades 33 + 5. **Developer onboarding** — `nix build .#usb-image` is one command vs a multi-step pipeline 34 + 35 + ## What NixOS Costs 36 + 37 + 1. **35x larger image** (7.3GB vs 200MB) — dominates flash time and storage 38 + 2. **~45x slower boot** (~80s vs ~2s to piece running) 39 + 3. **Wayland indirection** — cage compositor adds latency, cursor conflicts, and the evdev double-read bug 40 + 4. **Iteration speed** — each rebuild is ~15min (build + flash) vs ~4min for bare-metal 41 + 5. **Complexity** — 7 config files + flake vs one Makefile + one build script 42 + 6. **Debugging** — layers obscure issues (took 8 iterations to fix what bare-metal gets right by default) 43 + 7. **KVM requirement** — disk image creation needs QEMU; can't build in standard Codespace 44 + 45 + ## Root Cause of Performance Gap 46 + 47 + The bare-metal build was designed as a **single-process kiosk**: ac-native IS the init system (PID 1), owns DRM directly, reads evdev directly, talks to ALSA directly. Zero abstraction layers. 48 + 49 + NixOS interposes: systemd -> seatd -> cage -> wlroots -> libinput -> ac-native. Each layer adds latency, indirection, and failure modes. The Wayland path alone caused 3 bugs (cursor, double input, shutdown) that don't exist in DRM mode. 50 + 51 + ## Recommendations 52 + 53 + ### Option A: Keep Bare-Metal for Production, NixOS for Development 54 + 55 + Use `ac-os build/flash` for shipping USB sticks to @oskie and production hardware. Use NixOS for: 56 + - CI/CD reproducible builds (oven) 57 + - Testing on unknown hardware 58 + - Development VMs 59 + 60 + **Pros:** Ship the fast, proven pipeline now. NixOS matures in parallel. 61 + **Cons:** Two pipelines to maintain. 62 + 63 + ### Option B: NixOS Without Cage (Hybrid) 64 + 65 + Keep NixOS for system management but drop cage: 66 + - Run ac-native directly on DRM (its native mode) instead of under cage 67 + - Use systemd for services but bypass the compositor 68 + - Keeps reproducibility + package management without the Wayland tax 69 + 70 + **Implementation:** Change kiosk.nix to exec `ac-native` directly on tty1 instead of `cage -s -- ac-native`. Needs seat/DRM permission setup without a compositor. 71 + 72 + **Pros:** Best of both worlds — NixOS reproducibility + bare-metal performance. 73 + **Cons:** Needs DRM master permissions without cage/seatd; some integration work. 74 + 75 + ### Option C: NixOS With Minimal Initrd + Cage Bypass (Full Investment) 76 + 77 + Fully optimize the NixOS path: 78 + 1. Custom initrd with only target hardware modules (~30MB) 79 + 2. Drop cage, run DRM direct with proper seat permissions 80 + 3. Reduce image to ~2-3GB 81 + 4. Boot target: <10s 82 + 83 + **Pros:** Single pipeline, fully reproducible, fast. 84 + **Cons:** Significant NixOS expertise needed; may fight NixOS conventions. 85 + 86 + ### Option D: Abandon NixOS for AC Native 87 + 88 + Return to the proven `ac-os` pipeline. NixOS adds complexity without proportional benefit for a kiosk that targets known hardware. 89 + 90 + **Pros:** Simplest path. Proven. Fast. 91 + **Cons:** Loses reproducibility narrative. Build depends on host state. 92 + 93 + ## Verdict 94 + 95 + **Option B is likely the sweet spot.** The Wayland compositor is the single biggest source of bugs and performance loss. Removing cage while keeping NixOS for the system layer would eliminate 80% of the issues encountered in this session while retaining reproducibility. 96 + 97 + However, **for @oskie's USB today, Option A is correct** — ship the bare-metal build that works, and iterate on NixOS in parallel. 98 + 99 + ## Open Questions 100 + 101 + 1. Can ac-native acquire DRM master without cage/seatd under systemd? (Needs testing — may just need `video` group + `logind` seat assignment) 102 + 2. Is the 1.4GB generic initrd still loading even with `includeDefaultModules = false`? (Check actual initrd size on next build) 103 + 3. Should the oven build both variants (bare-metal + NixOS) and let the user choose? 104 + 4. Would a USB3 stick eliminate the boot speed concern? (55s / ~10x = ~5s with USB3 speeds) 105 + 5. Is there value in NixOS for the NVMe install path? (Install to internal disk removes the USB boot speed issue entirely) 106 + 107 + ## Files Modified in This Session 108 + 109 + ### NixOS Config (fedac/nixos/) 110 + - `flake.nix` — kidlispSrc, EFI partition, build filter, boot size 111 + - `configuration.nix` — kidlispSrc passthrough, quiet boot, no getty 112 + - `modules/hardware.nix` — wireless-regdb, slim initrd 113 + - `modules/kiosk.nix` — root service, PATH utilities, ALSA/cursor env vars 114 + - `modules/image.nix` — systemd-boot, silent boot params 115 + - `packages/ac-native/default.nix` — esbuild kidlisp bundle 116 + 117 + ### ac-native C Source (fedac/native/src/) 118 + - `ac-native.c` — ac_poweroff/ac_reboot helpers for systemd compat 119 + - `input.c` — hide Wayland cursor, skip evdev under Wayland 120 + - `audio.c` — aggressive mic compressor + hard limiter