Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

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

add venture one-pager and vscode extension updates

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

+90 -14
+65
venture-one-pager.md
··· 1 + # Aesthetic Computer 2 + 3 + **A creative computing platform that runs everywhere — from the browser to bare metal.** 4 + 5 + --- 6 + 7 + ## The Problem 8 + 9 + Creative tools are fragmented, expensive, and locked inside corporate ecosystems. Drawing lives in one app, music in another, code in another. None of them talk to each other, none of them let you publish or sell what you make without leaving the tool, and none of them run on hardware you actually own. 10 + 11 + ## The Product 12 + 13 + Aesthetic Computer is a unified runtime for creative computing — painting, music, generative art, games, and code — accessible from a single URL or bootable from a USB stick. 14 + 15 + - **361 creative tools** (drawing, music, games, simulations, educational pieces) 16 + - **KidLisp** — a custom Lisp dialect for generative art (16,779 programs written by users) 17 + - **Keeps** — on-chain minting (Tezos) so artists can sell work without leaving the platform 18 + - **AC Native OS** — bare-metal Linux that boots to a creative instrument in ~2 seconds 19 + - **Social layer** — handles, profiles, real-time chat, piece publishing, QR sharing 20 + 21 + Everything is immediate-mode, URL-addressable, and forkable. A user can visit `aesthetic.computer/paint`, make something, publish it as `@theirname/remix`, and share it via QR code — in one session. 22 + 23 + ## Traction 24 + 25 + | | | 26 + |---|---| 27 + | **183 active users** (60-day window) | **2,812 registered handles** | 28 + | **4,429 paintings** created | **16,779 KidLisp programs** written | 29 + | **265 user-published pieces** | **78 Keeps minted** (first 3 weeks) | 30 + | **UCLA curriculum integration** | **3 platforms** (web, desktop, bare-metal OS) | 31 + 32 + ## Revenue Model 33 + 34 + Six active streams, all early: 35 + 36 + - **Keeps minting fees** (2.5 XTZ per mint + 10% royalties on secondary sales) 37 + - **Subscriptions** (sotce.net — handle + page + chat access) 38 + - **Donations** ($5–$100+ via Stripe/PayPal) 39 + - **Print-on-demand** (stickers, mugs, physical prints of user art) 40 + - **Shop** (books, records, artworks) 41 + - **Botce tickets** (limited-use access passes) 42 + 43 + The long-term play: platform take-rate on a growing marketplace of user-created and user-sold creative tools, art, and music. 44 + 45 + ## Why Now 46 + 47 + 1. **AI makes creation easier but ownership harder** — AC gives creators a platform where their work is theirs, on-chain if they want it. 48 + 2. **The "personal computer" is impersonal** — AC Native OS is a bet that people will want dedicated creative hardware again, like musical instruments. 49 + 3. **Creative coding is going mainstream** — Processing/p5.js proved the market; KidLisp makes it radically simpler. 50 + 51 + ## Team 52 + 53 + **Jeffrey Scudder** — artist, educator, software engineer. Built the entire stack solo. Previously taught at UCLA (creative computing curriculum now runs on AC). Published academic work on creative computing interfaces. 54 + 55 + ## The Ask 56 + 57 + Raising a seed round to: 58 + - Hire 1–2 engineers (multiplayer infrastructure, mobile) 59 + - Scale the Keeps marketplace (artist onboarding, collector tools) 60 + - Ship AC Native OS hardware (dedicated creative computing device) 61 + - Grow the user base from 183 → 10,000 active creators 62 + 63 + --- 64 + 65 + **aesthetic.computer** · **kidlisp.com** · **@jeffrey**
+22 -11
vscode-extension/extension.ts
··· 1279 1279 }>; 1280 1280 } 1281 1281 1282 + const OTA_STAGES: Record<string, { icon: string; label: string; step: number }> = { 1283 + 'preflight-sync': { icon: '$(repo-sync~spin)', label: 'sync', step: 1 }, 1284 + 'prune': { icon: '$(trash~spin)', label: 'prune', step: 1 }, 1285 + 'docker-build': { icon: '$(container~spin)', label: 'docker', step: 2 }, 1286 + 'binary': { icon: '$(gear~spin)', label: 'binary', step: 3 }, 1287 + 'initramfs': { icon: '$(package~spin)', label: 'initramfs', step: 4 }, 1288 + 'kernel': { icon: '$(cpu~spin)', label: 'kernel', step: 5 }, 1289 + 'smoke-test': { icon: '$(beaker~spin)', label: 'test', step: 6 }, 1290 + 'upload': { icon: '$(cloud-upload~spin)', label: 'upload', step: 7 }, 1291 + 'done': { icon: '$(check)', label: 'done', step: 8 }, 1292 + }; 1293 + const OTA_TOTAL_STEPS = 7; 1294 + 1282 1295 function getOTAIcon(stage: string, status: string): string { 1283 1296 if (status === 'running') { 1284 - switch (stage) { 1285 - case 'binary': return '$(gear~spin)'; 1286 - case 'initramfs': return '$(package~spin)'; 1287 - case 'kernel': return '$(cpu~spin)'; 1288 - case 'smoke-test': return '$(beaker~spin)'; 1289 - case 'upload': return '$(cloud-upload~spin)'; 1290 - default: return '$(sync~spin)'; 1291 - } 1297 + return OTA_STAGES[stage]?.icon || '$(sync~spin)'; 1292 1298 } 1293 1299 switch (status) { 1294 1300 case 'success': return '$(check)'; ··· 1360 1366 const timeStr = mins > 0 ? `${mins}m${secs}s` : `${secs}s`; 1361 1367 const name = a.buildName || a.ref?.substring(0, 7) || ''; 1362 1368 const variant = a.stage?.startsWith('cl-') ? ' CL' : ' C'; 1363 - const stageClean = a.stage?.replace('cl-', '') || ''; 1364 - statusBarOTA.text = `${getOTAIcon(a.stage, 'running')} ${name}${variant} | ${stageClean} ${a.percent}% | ${timeStr}`; 1369 + const rawStage = a.stage?.replace('cl-', '') || ''; 1370 + const stageInfo = OTA_STAGES[rawStage]; 1371 + const stageLabel = stageInfo?.label || rawStage; 1372 + const stepNum = stageInfo?.step || 0; 1373 + const progress = a.percent > 0 ? ` ${a.percent}%` : ''; 1374 + const stepStr = stepNum > 0 ? ` [${stepNum}/${OTA_TOTAL_STEPS}]` : ''; 1375 + statusBarOTA.text = `${getOTAIcon(a.stage, 'running')} ${name}${variant} | ${stageLabel}${progress}${stepStr} | ${timeStr}`; 1365 1376 statusBarOTA.backgroundColor = getOTAColor('running'); 1366 - let tip = `AC-OS Building: ${name}\nVariant:${variant}\nStage: ${stageClean} (${a.percent}%)\nElapsed: ${timeStr}`; 1377 + let tip = `AC-OS Building: ${name}\nVariant:${variant}\nStage: ${stageLabel}${progress}${stepStr}\nElapsed: ${timeStr}`; 1367 1378 if (a.commitMsg) tip += `\n${a.commitMsg}`; 1368 1379 if (a.ref) tip += `\nCommit: ${a.ref.substring(0, 11)}`; 1369 1380 statusBarOTA.tooltip = tip;
+2 -2
vscode-extension/package-lock.json
··· 1 1 { 2 2 "name": "aesthetic-computer-code", 3 - "version": "1.271.1", 3 + "version": "1.271.2", 4 4 "lockfileVersion": 3, 5 5 "requires": true, 6 6 "packages": { 7 7 "": { 8 8 "name": "aesthetic-computer-code", 9 - "version": "1.271.1", 9 + "version": "1.271.2", 10 10 "license": "None", 11 11 "dependencies": { 12 12 "acorn": "^8.15.0",
+1 -1
vscode-extension/package.json
··· 4 4 "displayName": "Aesthetic Computer", 5 5 "icon": "resources/icon.png", 6 6 "author": "Jeffrey Alan Scudder", 7 - "version": "1.271.1", 7 + "version": "1.271.2", 8 8 "description": "Code, run, and publish your pieces. Includes Aesthetic Computer themes and KidLisp syntax highlighting.", 9 9 "engines": { 10 10 "vscode": "^1.105.0"