Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

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

feat: systemd-boot for Mac EFI + paper citations batch

Flash helper now uses systemd-boot instead of chainloader for the Mac
EFI partition — bypasses LoadImage entirely so Mac firmware can boot
the 270MB kernel. Builds a slim kernel (no embedded initramfs) alongside
the full one. systemd-boot loads kernel + initramfs separately via
EFI handover protocol.

Papers: added e-waste stats, ChromeOS Flex, Moglen/FreedomBox to OS
paper; post-COVID laptop orchestra status + ChucK/SLOrk detail to
PLOrk paper; Ukeles maintenance art to AC paper; McLuhan + predecessor
tools to notepat paper. RESEARCH-DIRECTION.md checklist updated.

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

+169 -134
+1
fedac/native/Dockerfile.flash-helper
··· 7 7 8 8 COPY fedac/native/scripts/media-layout.sh /usr/local/lib/ac-media-layout.sh 9 9 COPY fedac/native/scripts/flash-helper-runner.sh /usr/local/bin/ac-os-flash-helper 10 + COPY fedac/native/boot/systemd-bootx64.efi /usr/local/lib/systemd-bootx64.efi 10 11 11 12 RUN chmod +x /usr/local/bin/ac-os-flash-helper 12 13
+13
fedac/native/ac-os
··· 612 612 sudo cp arch/x86/boot/bzImage "${VMLINUZ}" 613 613 sudo chown $(whoami) "${VMLINUZ}" 614 614 log "Kernel: $(du -sh "${VMLINUZ}" | cut -f1)" 615 + 616 + # Also build a slim kernel WITHOUT embedded initramfs for Mac EFI boot. 617 + # Mac firmware can't load a 270MB EFI application. The slim kernel (~15MB) 618 + # loads via systemd-boot, which then provides the initramfs separately. 619 + log "Building slim kernel (no embedded initramfs) for Mac boot..." 620 + sed -i 's|^CONFIG_INITRAMFS_SOURCE=.*|CONFIG_INITRAMFS_SOURCE=""|' "${LINUX_DIR}/.config" 621 + sudo rm -f "${LINUX_DIR}/usr/initramfs_data.o" "${LINUX_DIR}/usr/.initramfs_data.o.cmd" 622 + make -j$(nproc) bzImage 2>&1 | tail -1 623 + sudo cp arch/x86/boot/bzImage "${BUILD_DIR}/vmlinuz-slim" 624 + sudo chown $(whoami) "${BUILD_DIR}/vmlinuz-slim" 625 + log "Slim kernel: $(du -sh "${BUILD_DIR}/vmlinuz-slim" | cut -f1)" 626 + # Restore config for next build 627 + sed -i 's|^CONFIG_INITRAMFS_SOURCE=.*|CONFIG_INITRAMFS_SOURCE="initramfs.cpio.lz4"|' "${LINUX_DIR}/.config" 615 628 } 616 629 617 630 record_build() {
+36 -5
fedac/native/scripts/flash-helper-runner.sh
··· 80 80 # This is discoverable by all UEFI firmware including Intel Macs. 81 81 cp "${STAGED_ROOT}/EFI/BOOT/KERNEL.EFI" "${mountpoint}/EFI/BOOT/BOOTX64.EFI" 82 82 ;; 83 + systemd-boot) 84 + # Use systemd-boot as BOOTX64.EFI with SLIM kernel + separate initramfs. 85 + # Mac EFI can't load a 270MB kernel. The slim kernel (~15MB) has no 86 + # embedded initramfs. systemd-boot loads both via linux + initrd. 87 + local sdboot="/usr/local/lib/systemd-bootx64.efi" 88 + [ ! -f "${sdboot}" ] && sdboot="/repo/fedac/native/boot/systemd-bootx64.efi" 89 + [ ! -f "${sdboot}" ] && sdboot="/workspaces/aesthetic-computer/fedac/native/boot/systemd-bootx64.efi" 90 + cp "${sdboot}" "${mountpoint}/EFI/BOOT/BOOTX64.EFI" 91 + # Use slim kernel if available, fall back to full kernel 92 + if [ -f "${STAGED_ROOT}/EFI/BOOT/KERNEL-SLIM.EFI" ]; then 93 + cp "${STAGED_ROOT}/EFI/BOOT/KERNEL-SLIM.EFI" "${mountpoint}/EFI/BOOT/KERNEL.EFI" 94 + else 95 + cp "${STAGED_ROOT}/EFI/BOOT/KERNEL.EFI" "${mountpoint}/EFI/BOOT/KERNEL.EFI" 96 + fi 97 + # Separate initramfs for systemd-boot to load 98 + if [ -f "${STAGED_ROOT}/initramfs.cpio.lz4" ]; then 99 + cp "${STAGED_ROOT}/initramfs.cpio.lz4" "${mountpoint}/initramfs.cpio.lz4" 100 + fi 101 + # systemd-boot loader config 102 + mkdir -p "${mountpoint}/loader/entries" 103 + printf 'default ac-native.conf\ntimeout 3\n' > "${mountpoint}/loader/loader.conf" 104 + cat > "${mountpoint}/loader/entries/ac-native.conf" << 'SDBOOT_EOF' 105 + title AC Native OS 106 + linux /EFI/BOOT/KERNEL.EFI 107 + initrd /initramfs.cpio.lz4 108 + options console=tty0 loglevel=7 init=/init nomodeset efi=noruntime 109 + SDBOOT_EOF 110 + ;; 83 111 *) 84 112 err "Unknown VFAT boot mode: ${boot_mode}" 85 113 return 1 ··· 158 186 sha256sum /mnt/ac-main/EFI/BOOT/KERNEL.EFI "${STAGED_ROOT}/EFI/BOOT/KERNEL.EFI" 159 187 umount /mnt/ac-main 160 188 161 - # Partition 2 (ACEFI): chainloader BOOTX64.EFI + KERNEL.EFI 189 + # Partition 2 (ACEFI): systemd-boot BOOTX64.EFI + KERNEL.EFI 162 190 mount_vfat_partition "${efi_part}" /mnt/ac-efi 163 191 test -f /mnt/ac-efi/EFI/BOOT/BOOTX64.EFI 164 192 test -f /mnt/ac-efi/EFI/BOOT/KERNEL.EFI 193 + test -f /mnt/ac-efi/loader/entries/ac-native.conf 165 194 sha256sum /mnt/ac-efi/EFI/BOOT/KERNEL.EFI "${STAGED_ROOT}/EFI/BOOT/KERNEL.EFI" 166 195 umount /mnt/ac-efi 167 196 ··· 237 266 238 267 # Partition 1 (ACBOOT): config + kernel as KERNEL.EFI (for AC initramfs to find) 239 268 copy_boot_tree_to_vfat "${MAIN_PART}" /mnt/ac-main yes kernel-only 240 - # Partition 2 (ACEFI): chainloader BOOTX64.EFI (51KB) + KERNEL.EFI (270MB) 241 - # Mac EFI firmware can't load a 270MB EFI application directly. 242 - # The small chainloader loads fine, then loads KERNEL.EFI itself. 243 - copy_boot_tree_to_vfat "${EFI_PART}" /mnt/ac-efi no chainloader 269 + # Partition 2 (ACEFI): systemd-boot (134KB) + KERNEL.EFI (270MB) 270 + # Mac EFI firmware can't LoadImage a 270MB PE/COFF. splash.efi also 271 + # uses LoadImage internally and fails the same way. systemd-boot uses 272 + # the EFI handover protocol to load the kernel directly into memory, 273 + # bypassing LoadImage entirely. 274 + copy_boot_tree_to_vfat "${EFI_PART}" /mnt/ac-efi no systemd-boot 244 275 populate_mac_partition "${MAC_PART}" /mnt/ac-mac 245 276 246 277 sync
+12
fedac/native/scripts/media-layout.sh
··· 99 99 cp "${bootloader_path}" "${stage_root}/EFI/BOOT/BOOTX64.EFI" 100 100 cp "${kernel_path}" "${stage_root}/EFI/BOOT/KERNEL.EFI" 101 101 cp "${config_path}" "${stage_root}/config.json" 102 + 103 + # Stage slim kernel + initramfs for Mac boot (systemd-boot mode) 104 + local kernel_dir 105 + kernel_dir="$(dirname "${kernel_path}")" 106 + local slim="${kernel_dir}/vmlinuz-slim" 107 + local initramfs="${kernel_dir}/initramfs.cpio.lz4" 108 + if [ -f "${slim}" ]; then 109 + cp "${slim}" "${stage_root}/EFI/BOOT/KERNEL-SLIM.EFI" 110 + fi 111 + if [ -f "${initramfs}" ]; then 112 + cp "${initramfs}" "${stage_root}/initramfs.cpio.lz4" 113 + fi 102 114 } 103 115 104 116 ac_stage_boot_media_tree() {
+10 -9
papers/RESEARCH-DIRECTION.md
··· 1 1 # Research Direction · Aesthetic Computer 2 2 3 - **Last updated**: 2026-03-18 3 + **Last updated**: 2026-03-28 4 4 **Author**: @jeffrey — [ORCID 0009-0007-4460-4913](https://orcid.org/0009-0007-4460-4913) 5 5 6 6 --- ··· 24 24 - [ ] Add figures: PLOrk vs AC OS cost scaling chart, surplus hardware photo grid, ensemble network diagram 25 25 - [ ] Get exact PLOrk equipment cost figures from Trueman 2006/2007 papers (currently estimated) 26 26 - [ ] Add real AC OS ensemble performance test results (latency, voice count, network throughput) 27 - - [ ] Cite Ge Wang's ChucK papers more specifically for SLOrk technical details 27 + - [x] Cite Ge Wang's ChucK papers more specifically for SLOrk technical details — prose strengthened 2026-03-28 28 28 - [ ] Add section on software-defined spatialization (distributed speakers as emergent hemispherical speaker) 29 - - [ ] Research and cite post-COVID laptop orchestra status (many dissolved?) 29 + - [x] Research and cite post-COVID laptop orchestra status (many dissolved?) — prose added in Related Work 2026-03-28 30 30 - [ ] Consider NIME 2027 submission (laptop orchestras + new instruments = core NIME topic) 31 31 32 32 ### 0b. AC Native OS '26 (arXiv — `arxiv-os/os.tex`) ··· 35 35 **Core argument**: Flashing surplus commodity laptops with a bare-metal creative OS offers a post-OLPC, post-Apple model of personal computing — deeper personalization at lower cost with zero infrastructure 36 36 **What's needed**: 37 37 - [ ] Add figures: boot splash screenshot, architecture diagram, cost comparison chart 38 - - [ ] Cite Eben Moglen / FreedomBox — community-owned infrastructure lineage 39 - - [ ] Cite e-waste statistics (UN Global E-waste Monitor 2024) for the surplus hardware argument 38 + - [x] Cite Eben Moglen / FreedomBox — community-owned infrastructure lineage — BibTeX + prose added 2026-03-28 39 + - [x] Cite e-waste statistics (UN Global E-waste Monitor 2024) for the surplus hardware argument — BibTeX + prose added 2026-03-28 40 40 - [ ] Add real performance benchmarks (boot time breakdown, frame timing, memory usage) 41 41 - [ ] Reference FedAC kiosk variant as the Fedora-based predecessor 42 - - [ ] Consider citing ChromeOS / CloudReady as the incumbent surplus-laptop OS 42 + - [x] Consider citing ChromeOS / CloudReady as the incumbent surplus-laptop OS — BibTeX + prose added 2026-03-28 43 43 - [ ] Add section on security model (no network services, no writable rootfs, EFI-only persistence) 44 44 - [ ] Pull hardware compatibility test results from different surplus laptop models 45 45 - [x] Cite Ted Nelson *Computer Lib / Dream Machines* — personal computing philosophy lineage (BibTeX added 2026-03-18) ··· 52 52 - [x] Cite McLuhan "Understanding Media" — BibTeX added 2026-03-18 53 53 - [x] Cite Ted Nelson *Computer Lib / Dream Machines* — BibTeX added 2026-03-18 54 54 - [x] Cite Montfort et al. *10 PRINT* — procedural generation / randomness in computation — BibTeX added 2026-03-18 55 - - [ ] Cite Ukeles "Manifesto for Maintenance Art" — AC's maintenance-as-practice philosophy (ants, upkeep) 55 + - [x] Cite Ukeles "Manifesto for Maintenance Art" — AC's maintenance-as-practice philosophy (ants, upkeep) — BibTeX + prose added 2026-03-28 56 56 - [x] Cite Roos & McLean "Strudel" (ICLC 2023) — BibTeX + prose added 2026-03-18 57 57 - [x] Cite Staunæs on Stiegler "Concept of Idiotext" — BibTeX + prose added 2026-03-18 58 58 - [ ] Add adoption metrics section (user counts, piece counts, session data from MongoDB) ··· 90 90 **Status**: Working draft, 4 pages, WORKING DRAFT watermark ✓ 91 91 **Current citations**: ~6 92 92 **What's missing from the platter**: 93 - - [ ] Cite McLuhan "Medium is the Message" — keyboard as musical interface, repurposing everyday input 93 + - [x] Cite McLuhan "Medium is the Message" — keyboard as musical interface, repurposing everyday input — BibTeX + prose added 2026-03-28 94 94 - [ ] Reference `notepat.com` Netlify routing and custom domain setup 95 95 - [ ] Add usage/adoption data if available 96 - - [ ] Reference predecessor tools: nopaint (6 repos!), whistlegraph performance tools 96 + - [x] Reference predecessor tools: nopaint (6 repos!), whistlegraph performance tools — prose added 2026-03-28 97 97 - [ ] Consider citing Eglash on culturally situated design tools 98 98 99 99 ### 5. Aesthetic Computer JOSS (`joss-ac/paper.md`) ··· 148 148 - **All 6 papers build clean** (xelatex + bibtex, 3 passes, no undefined citations) 149 149 - **Tier 1 complete.** All originally identified Tier 1 priorities now have BibTeX entries and prose citations. 150 150 - Remaining uncited readings worth considering (Tier 2): Arnheim, Klee (already in `arxiv-whistlegraph`), Manovich 151 + - **Batch 2026-03-28**: Ukeles (AC paper), McLuhan (notepat), Moglen/FreedomBox + e-waste stats + ChromeOS Flex (OS paper), post-COVID status + ChucK/SLOrk detail (PLORKing), Jeffrey economic specifics (Who Pays), predecessor tools (notepat) 151 152 - **Next**: Write actual paper prose around citations (currently integrated as single sentences; some could become fuller paragraphs) 152 153 153 154 ### Ars Electronica 2026
+1 -1
papers/arxiv-ac/ac.log
··· 1 - This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023) (preloaded format=xelatex 2026.3.17) 28 MAR 2026 15:53 1 + This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023) (preloaded format=xelatex 2026.3.17) 28 MAR 2026 22:34 2 2 entering extended mode 3 3 restricted \write18 enabled. 4 4 %&-line parsing enabled.
papers/arxiv-ac/ac.pdf

This is a binary file and will not be displayed.

+1 -1
papers/arxiv-notepat/notepat.log
··· 1 - This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023) (preloaded format=xelatex 2026.3.17) 28 MAR 2026 15:57 1 + This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023) (preloaded format=xelatex 2026.3.17) 28 MAR 2026 22:34 2 2 entering extended mode 3 3 restricted \write18 enabled. 4 4 %&-line parsing enabled.
papers/arxiv-notepat/notepat.pdf

This is a binary file and will not be displayed.

+13 -9
papers/arxiv-os/os.log
··· 1 - This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023) (preloaded format=xelatex 2026.3.17) 28 MAR 2026 15:58 1 + This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023) (preloaded format=xelatex 2026.3.17) 28 MAR 2026 22:35 2 2 entering extended mode 3 3 restricted \write18 enabled. 4 4 %&-line parsing enabled. ··· 1596 1596 [][] 1597 1597 [] 1598 1598 1599 - [3] 1599 + 1600 + Underfull \vbox (badness 10000) has occurred while \output is active [] 1601 + 1602 + [3] 1600 1603 Underfull \vbox (badness 10000) has occurred while \output is active [] 1601 1604 1602 1605 ··· 1617 1620 Underfull \vbox (badness 10000) has occurred while \output is active [] 1618 1621 1619 1622 (./os.bbl 1620 - Underfull \hbox (badness 4084) in paragraph at lines 88--94 1623 + [5] 1624 + Underfull \hbox (badness 4084) in paragraph at lines 103--109 1621 1625 []\TU/LatinModernRoman(0)/m/sc/10 Mitchel Resnick, John Maloney, Andrés Monroy- 1622 1626 1623 1627 [] 1624 1628 1625 - [5]) [6 1629 + ) [6 1626 1630 1627 1631 ] (./os.aux) 1628 1632 ··· 1632 1636 (rerunfilecheck) Checksum: 63282D347289C71A3C403E42E0471B8F;3639. 1633 1637 ) 1634 1638 Here is how much of TeX's memory you used: 1635 - 21057 strings out of 478682 1636 - 385950 string characters out of 5849006 1637 - 1928018 words of memory out of 6000000 1638 - 40866 multiletter control sequences out of 15000+600000 1639 + 21063 strings out of 478682 1640 + 386109 string characters out of 5849006 1641 + 1929018 words of memory out of 6000000 1642 + 40872 multiletter control sequences out of 15000+600000 1639 1643 514930 words of font info for 103 fonts, out of 8000000 for 9000 1640 1644 14 hyphenation exceptions out of 8191 1641 - 84i,12n,115p,1277b,1532s stack positions out of 10000i,1000n,20000p,200000b,200000s 1645 + 84i,12n,115p,1277b,1505s stack positions out of 10000i,1000n,20000p,200000b,200000s 1642 1646 1643 1647 Output written on os.pdf (6 pages).
papers/arxiv-os/os.pdf

This is a binary file and will not be displayed.

+2 -2
papers/arxiv-os/os.tex
··· 201 201 202 202 The One Laptop Per Child (OLPC) project~\citep{negroponte1995being, kraemer2009olpc} proposed that universal computing access required designing new hardware---a \$100 laptop purpose-built for education. The XO laptop shipped with a custom OS (Sugar), custom hardware, and a custom distribution model. The project produced important ideas but struggled with a fundamental tension: custom hardware is expensive to design, manufacture, and maintain, and the \$100 target was never achieved at scale. 203 203 204 - Meanwhile, the consumer computing market produces a constant surplus of functional machines. Corporate lease cycles retire millions of laptops every 3--5 years. Retail overstocks, cancelled orders, and cosmetic defects generate warehouse inventories. E-waste recyclers receive machines with years of useful life remaining. These surplus computers---ThinkPads, EliteBooks, Latitudes---are available for \$30--80 with modern processors, 8--16\,GB RAM, WiFi, keyboards, and screens. 204 + Meanwhile, the consumer computing market produces a constant surplus of functional machines. The UN Global E-waste Monitor reports 62 million tonnes of electronic waste generated annually, growing at 2.6 million tonnes per year, with only 22.3\% documented as properly collected and recycled~\citep{forti2024ewaste}. Corporate lease cycles retire millions of laptops every 3--5 years. Retail overstocks, cancelled orders, and cosmetic defects generate warehouse inventories. E-waste recyclers receive machines with years of useful life remaining. These surplus computers---ThinkPads, EliteBooks, Latitudes---are available for \$30--80 with modern processors, 8--16\,GB RAM, WiFi, keyboards, and screens. 205 205 206 206 \acos{} takes the opposite approach from OLPC: instead of designing custom hardware, I design a custom operating system that transforms \emph{any} commodity x86\_64 machine into a dedicated creative computing instrument. The entire OS is a single file. Flashing it onto a USB drive takes under a minute. The machine boots in 7.3 seconds into a musical instrument, a drawing tool, or a programming environment---with the owner's name on the screen and their voice greeting them by name. 207 207 ··· 412 412 \section{Related Work} 413 413 \label{sec:related} 414 414 415 - \textbf{Educational OS projects.} Sugar OS (OLPC) pioneered the single-purpose educational operating system but was constrained by its hardware dependency. Endless OS targets low-spec hardware with offline-first content but retains a traditional desktop metaphor. PrimTux and Edubuntu customize Linux distributions for education but do not reimagine the OS layer itself. 415 + \textbf{Educational OS projects.} Sugar OS (OLPC) pioneered the single-purpose educational operating system but was constrained by its hardware dependency. Endless OS targets low-spec hardware with offline-first content but retains a traditional desktop metaphor. PrimTux and Edubuntu customize Linux distributions for education but do not reimagine the OS layer itself. ChromeOS Flex~\citep{google2022chromeosflex} (formerly Neverware CloudReady) is the most direct comparison: a free OS that repurposes old PCs and Macs as managed Chromebooks. It proves the surplus-hardware thesis at scale---Google certifies hundreds of older models---but turns machines into cloud-dependent thin clients rather than autonomous creative instruments. ChromeOS Flex requires Google Admin Console, fleet management, and internet connectivity; \acos{} requires none of these. 416 416 417 417 \textbf{Kiosk and single-purpose systems.} Digital signage OSes (Screenly, Yodeck) demonstrate that single-purpose Linux deployments can be maintained at scale via OTA updates. \acos{} applies this operational model to creative computing rather than content display. 418 418
+74 -101
papers/arxiv-plork/plork.log
··· 1 - This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023) (preloaded format=xelatex 2026.3.17) 28 MAR 2026 16:00 1 + This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023) (preloaded format=xelatex 2026.3.17) 28 MAR 2026 22:35 2 2 entering extended mode 3 3 restricted \write18 enabled. 4 4 %&-line parsing enabled. ··· 785 785 (./plork.aux) 786 786 \openout1 = `plork.aux'. 787 787 788 - LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 163. 789 - LaTeX Font Info: ... okay on input line 163. 790 - LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 163. 791 - LaTeX Font Info: ... okay on input line 163. 792 - LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 163. 793 - LaTeX Font Info: ... okay on input line 163. 794 - LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 163. 795 - LaTeX Font Info: ... okay on input line 163. 796 - LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 163. 797 - LaTeX Font Info: ... okay on input line 163. 798 - LaTeX Font Info: Checking defaults for TU/lmr/m/n on input line 163. 799 - LaTeX Font Info: ... okay on input line 163. 800 - LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 163. 801 - LaTeX Font Info: ... okay on input line 163. 802 - LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 163. 803 - LaTeX Font Info: ... okay on input line 163. 804 - LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 163. 805 - LaTeX Font Info: ... okay on input line 163. 806 - LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 163. 807 - LaTeX Font Info: ... okay on input line 163. 788 + LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 164. 789 + LaTeX Font Info: ... okay on input line 164. 790 + LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 164. 791 + LaTeX Font Info: ... okay on input line 164. 792 + LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 164. 793 + LaTeX Font Info: ... okay on input line 164. 794 + LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 164. 795 + LaTeX Font Info: ... okay on input line 164. 796 + LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 164. 797 + LaTeX Font Info: ... okay on input line 164. 798 + LaTeX Font Info: Checking defaults for TU/lmr/m/n on input line 164. 799 + LaTeX Font Info: ... okay on input line 164. 800 + LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 164. 801 + LaTeX Font Info: ... okay on input line 164. 802 + LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 164. 803 + LaTeX Font Info: ... okay on input line 164. 804 + LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 164. 805 + LaTeX Font Info: ... okay on input line 164. 806 + LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 164. 807 + LaTeX Font Info: ... okay on input line 164. 808 808 809 809 *geometry* driver: auto-detecting 810 810 *geometry* detected driver: xetex ··· 880 880 (fontspec) - 'bold small caps' (b/sc) with NFSS spec.: 881 881 882 882 LaTeX Font Info: Encoding `OT1' has changed to `TU' for symbol font 883 - (Font) `operators' in the math version `normal' on input line 163. 883 + (Font) `operators' in the math version `normal' on input line 164. 884 884 885 885 LaTeX Font Info: Overwriting symbol font `operators' in version `normal' 886 886 (Font) OT1/cmr/m/n --> TU/latinmodern-math.otf(1)/m/n on input 887 - line 163. 887 + line 164. 888 888 LaTeX Font Info: Encoding `OT1' has changed to `TU' for symbol font 889 - (Font) `operators' in the math version `bold' on input line 163. 889 + (Font) `operators' in the math version `bold' on input line 164. 890 890 LaTeX Font Info: Overwriting symbol font `operators' in version `bold' 891 891 (Font) OT1/cmr/bx/n --> TU/latinmodern-math.otf(1)/b/n on inpu 892 - t line 163. 892 + t line 164. 893 893 894 894 Package fontspec Info: latinmodern-math scale = 1.0001. 895 895 ··· 960 960 (fontspec) \fontdimen 21\font =0pt\relax 961 961 962 962 LaTeX Font Info: Encoding `OMS' has changed to `TU' for symbol font 963 - (Font) `symbols' in the math version `normal' on input line 163. 963 + (Font) `symbols' in the math version `normal' on input line 164. 964 964 LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' 965 965 (Font) OMS/cmsy/m/n --> TU/latinmodern-math.otf(2)/m/n on inpu 966 - t line 163. 966 + t line 164. 967 967 LaTeX Font Info: Encoding `OMS' has changed to `TU' for symbol font 968 - (Font) `symbols' in the math version `bold' on input line 163. 968 + (Font) `symbols' in the math version `bold' on input line 164. 969 969 LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' 970 970 (Font) OMS/cmsy/b/n --> TU/latinmodern-math.otf(2)/b/n on inpu 971 - t line 163. 971 + t line 164. 972 972 973 973 Package fontspec Info: latinmodern-math scale = 0.9999. 974 974 ··· 1022 1022 1023 1023 LaTeX Font Info: Encoding `OMX' has changed to `TU' for symbol font 1024 1024 (Font) `largesymbols' in the math version `normal' on input line 1 1025 - 63. 1025 + 64. 1026 1026 LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' 1027 1027 (Font) OMX/cmex/m/n --> TU/latinmodern-math.otf(3)/m/n on inpu 1028 - t line 163. 1028 + t line 164. 1029 1029 LaTeX Font Info: Encoding `OMX' has changed to `TU' for symbol font 1030 - (Font) `largesymbols' in the math version `bold' on input line 163 1030 + (Font) `largesymbols' in the math version `bold' on input line 164 1031 1031 . 1032 1032 LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' 1033 1033 (Font) OMX/cmex/m/n --> TU/latinmodern-math.otf(3)/b/n on inpu 1034 - t line 163. 1035 - Package hyperref Info: Link coloring ON on input line 163. 1034 + t line 164. 1035 + Package hyperref Info: Link coloring ON on input line 164. 1036 1036 (./plork.out) (./plork.out) 1037 1037 \@outlinefile=\write3 1038 1038 \openout3 = `plork.out'. 1039 1039 1040 - LaTeX Info: Redefining \microtypecontext on input line 163. 1041 - Package microtype Info: Applying patch `item' on input line 163. 1042 - Package microtype Info: Applying patch `toc' on input line 163. 1043 - Package microtype Info: Applying patch `eqnum' on input line 163. 1044 - Package microtype Info: Applying patch `footnote' on input line 163. 1045 - Package microtype Info: Applying patch `verbatim' on input line 163. 1040 + LaTeX Info: Redefining \microtypecontext on input line 164. 1041 + Package microtype Info: Applying patch `item' on input line 164. 1042 + Package microtype Info: Applying patch `toc' on input line 164. 1043 + Package microtype Info: Applying patch `eqnum' on input line 164. 1044 + Package microtype Info: Applying patch `footnote' on input line 164. 1045 + Package microtype Info: Applying patch `verbatim' on input line 164. 1046 1046 Package microtype Info: Character protrusion enabled (level 2). 1047 1047 Package microtype Info: Using default protrusion set `alltext'. 1048 1048 Package microtype Info: No adjustment of tracking. ··· 1510 1510 (microtype) in font `\TU/ywft-processing-light(0)/m/n/9'. 1511 1511 (microtype) Ignoring protrusion settings for this character. 1512 1512 LaTeX Font Info: Font shape `TU/LatinModernMono(0)/m/n' will be 1513 - (Font) scaled to size 7.65005pt on input line 202. 1513 + (Font) scaled to size 7.65005pt on input line 203. 1514 1514 Package microtype Info: Loading generic protrusion settings for font family 1515 1515 (microtype) `LatinModernMono' (encoding: TU). 1516 1516 (microtype) For optimal results, create family-specific settings. ··· 1520 1520 (microtype) For optimal results, create family-specific settings. 1521 1521 (microtype) See the microtype manual for details. 1522 1522 LaTeX Font Info: Font shape `TU/latinmodern-math.otf(2)/m/n' will be 1523 - (Font) scaled to size 9.00096pt on input line 202. 1523 + (Font) scaled to size 9.00096pt on input line 203. 1524 1524 LaTeX Font Info: Font shape `TU/latinmodern-math.otf(2)/m/n' will be 1525 - (Font) scaled to size 6.00064pt on input line 202. 1525 + (Font) scaled to size 6.00064pt on input line 203. 1526 1526 LaTeX Font Info: Font shape `TU/latinmodern-math.otf(2)/m/n' will be 1527 - (Font) scaled to size 5.00053pt on input line 202. 1527 + (Font) scaled to size 5.00053pt on input line 203. 1528 1528 LaTeX Font Info: Font shape `TU/latinmodern-math.otf(3)/m/n' will be 1529 - (Font) scaled to size 8.99904pt on input line 202. 1529 + (Font) scaled to size 8.99904pt on input line 203. 1530 1530 LaTeX Font Info: Font shape `TU/latinmodern-math.otf(3)/m/n' will be 1531 - (Font) scaled to size 5.99936pt on input line 202. 1531 + (Font) scaled to size 5.99936pt on input line 203. 1532 1532 LaTeX Font Info: Font shape `TU/latinmodern-math.otf(3)/m/n' will be 1533 - (Font) scaled to size 4.99947pt on input line 202. 1533 + (Font) scaled to size 4.99947pt on input line 203. 1534 1534 1535 1535 LaTeX Font Warning: Font shape `TU/LatinModernRoman(0)/m/sc' undefined 1536 1536 (Font) using `TU/LatinModernRoman(0)/m/n' instead on input line 20 1537 - 2. 1537 + 3. 1538 1538 1539 1539 1540 1540 Underfull \vbox (badness 10000) has occurred while \output is active [] ··· 1549 1549 Underfull \vbox (badness 10000) has occurred while \output is active [] 1550 1550 1551 1551 1552 - Overfull \hbox (22.62013pt too wide) in paragraph at lines 257--268 1552 + Overfull \hbox (22.62013pt too wide) in paragraph at lines 258--269 1553 1553 [][] 1554 1554 [] 1555 1555 1556 1556 LaTeX Font Info: Font shape `TU/latinmodern-math.otf(2)/m/n' will be 1557 - (Font) scaled to size 10.00107pt on input line 268. 1557 + (Font) scaled to size 10.00107pt on input line 269. 1558 1558 LaTeX Font Info: Font shape `TU/latinmodern-math.otf(2)/m/n' will be 1559 - (Font) scaled to size 7.00075pt on input line 268. 1559 + (Font) scaled to size 7.00075pt on input line 269. 1560 1560 LaTeX Font Info: Font shape `TU/latinmodern-math.otf(3)/m/n' will be 1561 - (Font) scaled to size 9.99893pt on input line 268. 1561 + (Font) scaled to size 9.99893pt on input line 269. 1562 1562 LaTeX Font Info: Font shape `TU/latinmodern-math.otf(3)/m/n' will be 1563 - (Font) scaled to size 6.99925pt on input line 268. 1563 + (Font) scaled to size 6.99925pt on input line 269. 1564 1564 1565 1565 Underfull \vbox (badness 1137) has occurred while \output is active [] 1566 1566 1567 1567 [2] 1568 - Underfull \hbox (badness 1859) in paragraph at lines 293--294 1568 + Underfull \hbox (badness 1859) in paragraph at lines 294--295 1569 1569 []\TU/LatinModernRoman(0)/m/sc/10 The U.S. PIRG Education Fund’s “Chromebook 1570 1570 [] 1571 1571 ··· 1576 1576 Underfull \vbox (badness 10000) has occurred while \output is active [] 1577 1577 1578 1578 [3] 1579 - ! Undefined control sequence. 1580 - l.349 ...ser, or a command line. It boots into \np 1581 - {}---a chromatic keyboard ... 1582 - The control sequence at the end of the top line 1583 - of your error message was never \def'ed. If you have 1584 - misspelled it (e.g., `\hobx'), type `I' and the correct 1585 - spelling (e.g., `I\hbox'). Otherwise just continue, 1586 - and I'll forget about whatever was undefined. 1587 - 1588 - ! Undefined control sequence. 1589 - l.353 ...erequisite for musical participation. \np 1590 - {} inverts this: musical p... 1591 - The control sequence at the end of the top line 1592 - of your error message was never \def'ed. If you have 1593 - misspelled it (e.g., `\hobx'), type `I' and the correct 1594 - spelling (e.g., `I\hbox'). Otherwise just continue, 1595 - and I'll forget about whatever was undefined. 1596 - 1597 - ! Undefined control sequence. 1598 - l.355 ...ability~\citep{scudder2026folksongs}. \np 1599 - {}'s song mode makes this ... 1600 - The control sequence at the end of the top line 1601 - of your error message was never \def'ed. If you have 1602 - misspelled it (e.g., `\hobx'), type `I' and the correct 1603 - spelling (e.g., `I\hbox'). Otherwise just continue, 1604 - and I'll forget about whatever was undefined. 1605 - 1579 + LaTeX Font Info: Font shape `TU/LatinModernMono(0)/m/n' will be 1580 + (Font) scaled to size 8.50006pt on input line 350. 1606 1581 1607 1582 Underfull \vbox (badness 10000) has occurred while \output is active [] 1608 1583 1609 - LaTeX Font Info: Font shape `TU/LatinModernMono(0)/m/n' will be 1610 - (Font) scaled to size 8.50006pt on input line 395. 1611 1584 [4] 1612 1585 Underfull \vbox (badness 10000) has occurred while \output is active [] 1613 1586 ··· 1615 1588 Underfull \vbox (badness 10000) has occurred while \output is active [] 1616 1589 1617 1590 [5] 1618 - Underfull \hbox (badness 2762) in paragraph at lines 484--484 1591 + Underfull \hbox (badness 2762) in paragraph at lines 485--485 1619 1592 |[]\TU/LatinModernRoman(0)/b/n/10 PLORK THE PLANET: A CONCRETE 1620 1593 [] 1621 1594 ··· 1623 1596 Underfull \vbox (badness 10000) has occurred while \output is active [] 1624 1597 1625 1598 [6] 1626 - Underfull \hbox (badness 2452) in paragraph at lines 538--539 1599 + Underfull \hbox (badness 2452) in paragraph at lines 539--540 1627 1600 []\TU/LatinModernRoman(0)/b/n/10 Composition\TU/LatinModernRoman(0)/m/sc/10 : P 1628 1601 LOrk generated a new reper- 1629 1602 [] ··· 1632 1605 Underfull \vbox (badness 10000) has occurred while \output is active [] 1633 1606 1634 1607 1635 - Underfull \hbox (badness 1292) in paragraph at lines 545--546 1608 + Underfull \hbox (badness 1292) in paragraph at lines 546--547 1636 1609 \TU/LatinModernRoman(0)/m/sc/10 dependence on institutional infrastructure rema 1637 1610 ined. 1638 1611 [] ··· 1641 1614 Underfull \vbox (badness 10000) has occurred while \output is active [] 1642 1615 1643 1616 [7] 1644 - Overfull \hbox (27.10393pt too wide) in paragraph at lines 586--587 1617 + Underfull \vbox (badness 10000) has occurred while \output is active [] 1618 + 1619 + 1620 + Overfull \hbox (27.10393pt too wide) in paragraph at lines 587--588 1645 1621 []\TU/LatinModernRoman(0)/m/sc/10 OLPC failed for reasons that are now well-doc 1646 1622 umented [[][]Krae- 1647 1623 [] 1648 1624 1649 - 1650 - Underfull \vbox (badness 10000) has occurred while \output is active [] 1651 - 1652 1625 LaTeX Font Info: Font shape `TU/latinmodern-math.otf(2)/m/n' will be 1653 - (Font) scaled to size 8.00085pt on input line 593. 1626 + (Font) scaled to size 8.00085pt on input line 594. 1654 1627 LaTeX Font Info: Font shape `TU/latinmodern-math.otf(3)/m/n' will be 1655 - (Font) scaled to size 7.99915pt on input line 593. 1628 + (Font) scaled to size 7.99915pt on input line 594. 1656 1629 1657 - Underfull \hbox (badness 10000) in paragraph at lines 595--595 1630 + Underfull \hbox (badness 10000) in paragraph at lines 596--596 1658 1631 []|\TU/LatinModernRoman(0)/b/n/8 Failure 1659 1632 [] 1660 1633 1661 1634 1662 - Underfull \hbox (badness 10000) in paragraph at lines 597--597 1635 + Underfull \hbox (badness 10000) in paragraph at lines 598--598 1663 1636 []|\TU/LatinModernRoman(0)/m/n/8 Purpose-built XO 1664 1637 [] 1665 1638 1666 1639 1667 - Underfull \hbox (badness 4995) in paragraph at lines 598--599 1640 + Underfull \hbox (badness 4995) in paragraph at lines 599--600 1668 1641 []|\TU/LatinModernRoman(0)/m/n/8 Standard laptop, al- 1669 1642 [] 1670 1643 1671 1644 1672 - Underfull \hbox (badness 1478) in paragraph at lines 599--600 1645 + Underfull \hbox (badness 1478) in paragraph at lines 600--601 1673 1646 []|\TU/LatinModernRoman(0)/m/n/8 Commodity hardware, 1674 1647 [] 1675 1648 1676 1649 1677 - Overfull \hbox (16.48764pt too wide) in paragraph at lines 593--606 1650 + Overfull \hbox (16.48764pt too wide) in paragraph at lines 594--607 1678 1651 [][] 1679 1652 [] 1680 1653 ··· 1740 1713 (rerunfilecheck) Checksum: AF0D1B1BC5430EE9249FC4DD24DB0578;8376. 1741 1714 ) 1742 1715 Here is how much of TeX's memory you used: 1743 - 21058 strings out of 478682 1744 - 387136 string characters out of 5849006 1745 - 1874018 words of memory out of 6000000 1746 - 40862 multiletter control sequences out of 15000+600000 1716 + 21059 strings out of 478682 1717 + 387138 string characters out of 5849006 1718 + 1873018 words of memory out of 6000000 1719 + 40863 multiletter control sequences out of 15000+600000 1747 1720 515482 words of font info for 107 fonts, out of 8000000 for 9000 1748 1721 14 hyphenation exceptions out of 8191 1749 1722 84i,12n,115p,1002b,650s stack positions out of 10000i,1000n,20000p,200000b,200000s
+2 -1
papers/arxiv-plork/plork.tex
··· 111 111 \acrandletter{e}{E}\acrandletter{r}{R}% 112 112 } 113 113 \newcommand{\acos}{\textsc{AC Native OS}} 114 + \newcommand{\np}{\texttt{notepat}} 114 115 115 116 % === LISTINGS === 116 117 \lstdefinelanguage{acjs}{ ··· 566 567 \section{Related Work} 567 568 \label{sec:related} 568 569 569 - \textbf{Laptop orchestras.} PLOrk~\citep{trueman2006plork} established the form. L2Ork~\citep{bukvic2010l2ork} demonstrated Linux viability and cost reduction. SLOrk~\citep{wang2009designing} contributed ChucK-based pedagogy and the IKEA-salad-bowl speaker. Thirty-plus university ensembles have operated since 2005. None has operated outside a university. 570 + \textbf{Laptop orchestras.} PLOrk~\citep{trueman2006plork} established the form. L2Ork~\citep{bukvic2010l2ork} demonstrated Linux viability and cost reduction. SLOrk~\citep{wang2009designing} at Stanford contributed ChucK-based pedagogy, a curriculum centered on Wang's on-the-fly programming model~\citep{wang2003chuck}, and the resourceful IKEA-salad-bowl hemispherical speaker variant. Thirty-plus university ensembles have operated since 2005. The COVID-19 pandemic disrupted or dissolved many of these ensembles---in-person rehearsal was impossible, and the institutional funding that sustained equipment and space often did not survive budget contractions. As of 2026, the number of active laptop orchestras appears significantly reduced from the pre-pandemic peak, though precise figures are difficult to establish because many ensembles existed informally within departments. None has operated outside a university. 570 571 571 572 \textbf{Music coding for access.} Sonic Pi~\citep{aaron2016sonic} runs on Raspberry Pi and desktop OSes, teaching music through live coding. It is the closest existing project to democratized computer music but is single-user, requires a host OS, and is not an ensemble instrument. 572 573
+4 -5
papers/arxiv-sustainability/sustainability.log
··· 1 - This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023) (preloaded format=xelatex 2026.3.17) 28 MAR 2026 15:59 1 + This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023) (preloaded format=xelatex 2026.3.17) 28 MAR 2026 22:35 2 2 entering extended mode 3 3 restricted \write18 enabled. 4 4 %&-line parsing enabled. ··· 1529 1529 Underfull \vbox (badness 10000) has occurred while \output is active [] 1530 1530 1531 1531 1532 - (./sustainability.bbl 1533 1532 Underfull \vbox (badness 10000) has occurred while \output is active [] 1534 1533 1535 - [4]) 1536 - [5 1534 + [4] 1535 + (./sustainability.bbl) [5 1537 1536 1538 1537 ] (./sustainability.aux) 1539 1538 ··· 1549 1548 39443 multiletter control sequences out of 15000+600000 1550 1549 514930 words of font info for 103 fonts, out of 8000000 for 9000 1551 1550 14 hyphenation exceptions out of 8191 1552 - 84i,12n,115p,1486b,644s stack positions out of 10000i,1000n,20000p,200000b,200000s 1551 + 84i,13n,115p,1486b,644s stack positions out of 10000i,1000n,20000p,200000b,200000s 1553 1552 1554 1553 Output written on sustainability.pdf (5 pages).
papers/arxiv-sustainability/sustainability.pdf

This is a binary file and will not be displayed.