Portfolio diagram

Atlas

A living topology of the lab: tools, scenes, learning environments, and the systems that distribute them. studio-notes sits across the map as the distilled layer for cross-project patterns, decisions, reference, and teaching cards. Hover to spotlight the map; click only the repo-backed nodes to open their pages.

Portfolio diagram

The diagram mirrors the current repository map. Concrete repos open to node pages; grouping labels stay in the diagram as structure, not destinations.

%%{ init: { "flowchart": { "defaultRenderer": "dagre-d3", "rankSpacing": 30, "nodeSpacing": 10 } } }%% graph TD thesis["Empower people to build with agency using open tools,
consent-forward scenes,
and learning environments — all documented loudly."] thesis --> toolsPillar["Tools"] thesis --> scenesPillar["Scenes"] thesis --> learningPillar["Learning Environments"] thesis --> infraPillar["Systems & Distribution"] thesis --> studioNotes["studio-notes
Cross-project layer"] %% TOOLS (one tall chain) toolsPillar --> toolsAudio["Tools: sound + patch worlds"] toolsAudio --> tmsLib["tms-lib"] --> seedBox["seedBox"] --> Horizon["Horizon"] --> DustPress["DustPress"] --> lofiSampler["lofi-sampler"] --> PdRepo["Pd"] --> VCVpatch["VCV_patch"] VCVpatch --> toolsControl["Tools: control + hardware"] toolsControl --> MOARkNOBS42["MOARkNOBS-42"] --> MN42Configurator["MN42 configurator"] --> arduinoSketches["arduinoSketches"] --> microGranny2["microGranny2"] --> x0xb0x["x0xb0x"] x0xb0x --> toolsAnalysis["Tools: analysis + triggers + DSP"] toolsAnalysis --> frZone["frZone_core"] --> teensyDSP["Teensy DSP fx unit"] %% SCENES (one tall chain) scenesPillar --> scenesWorks["Scenes: works + studies"] scenesWorks --> perceptualDrift["perceptual-drift"] --> pointyClumps["pointy-clumps"] --> droneChorus["drone-chorus"] --> roomLens["roomLens"] --> StringFieldNode["StringField"] --> DiceLoopNode["DiceLoop"] --> hallwayReactor["hallway-reactor"] --> ArduinoSculpture["ArduinoSculpture_MCAD"] --> HumanBuffer["Human-Buffer"] --> memory_engine["Memory Engine"] HumanBuffer --> scenesStage["Scenes: stage interop stack"] scenesStage --> liveRig["live-rig"] --> liveRigCtrl["live-rig-control"] --> interstream["interstream"] --> maelstrom["maelstrom"] --> scVideoMixer["SC Video Mixer"] --> clipFoundry["new_wrld (clip foundry)"] --> deskCam["desk camera feed"] %% LEARNING (one tall chain) learningPillar --> learnCurricula["Learning: createMPLS curricula"] learnCurricula --> cMCurricula["cM_curricula"] --> scratch["Scratch (12w)"] --> printing["3D print/CAD (4)"] --> lego["LEGO Spike/BricQ"] --> piper["Piper/RPi"] --> dronesEd["Drones curriculum"] --> privacyMedia["Privacy media course"] privacyMedia --> learnFactory["Learning: course factory + templates"] learnFactory --> SyllabusRepo["Syllabus"] --> ART215["ART215_SP22"] ART215 --> learnDocs["Learning: docs + public site"] learnDocs --> repairStudio["repair-studio"] --> machineDocs["machine-docs"] --> learnOps["Learning: teacher workflow"] learnOps --> teacherOps["make → deploy → assess"] %% SYSTEMS (one tall chain + hubs at the bottom) infraPillar --> infraLMS["Systems: classroom doorways"] infraLMS --> djangoLMS["LMS redesign (Django)"] --> classhub["Class Hub"] --> infraStack["Infra stack (PG/Redis/MinIO/Caddy)"] infraStack --> infraFleet["Systems: deployment + device fleet"] infraFleet --> piImaging["Pi imaging kit"] --> docker["Docker/compose"] --> server["Ubuntu server"] --> openvpn["OpenVPN"] openvpn --> infraArchive["Systems: indexing + publishing"] infraArchive --> llfs["LlamaFS"] --> studio1["Studio1"] --> ghPages["GitHub Pages"] ghPages --> infraLab["Systems: studio infrastructure"] infraLab --> homeauto["homeauto"] --> turingpi2["Turing Pi 2"] --> printServer["Repetier-Server node"] printServer --> infraGov["Systems: governance + ethics"] infraGov --> governance["AGENTS + checklists + consent notes"] governance --> agencyHub["Agency / Authorship / Feedback Loops"] --> opennessHub["Open Documentation & Consent-Forward Ethos"] --> resilienceHub["Field Reliability / Safety / Care"] %% Cross-links (kept high-level so columns stay vertical) toolsControl -. "workshops" .-> learnCurricula toolsAnalysis -. "triggers" .-> scenesStage infraLMS -. "delivers" .-> learnCurricula infraArchive -. "publishes" .-> learnDocs learnCurricula -. "fieldwork feeds" .-> scenesWorks studioNotes -. "harvests patterns" .-> toolsPillar studioNotes -. "distills scene logic" .-> scenesPillar studioNotes -. "translates methods" .-> learningPillar studioNotes -. "records decisions" .-> infraPillar %% STYLES classDef tools fill:#383838,stroke:#FFFFFF,stroke-width:2px,color:#F4F4F4; classDef scenes fill:#D5E8D4,stroke:#82B366,stroke-width:2px,color:#1A1A1A; classDef learning fill:#BAE8FC,stroke:#6C8EBF,stroke-width:2px,color:#1A1A1A; classDef infra fill:#E7D7FF,stroke:#7C5CBF,stroke-width:2px,color:#1A1A1A; classDef cross fill:#F8E4C8,stroke:#8A5A2B,stroke-width:2px,color:#1A1A1A; classDef hub fill:#F2F2CC,stroke:#999,stroke-width:2px,stroke-dasharray: 3 3,color:#1A1A1A; class thesis,toolsPillar,toolsAudio,tmsLib,seedBox,Horizon,DustPress,lofiSampler,PdRepo,VCVpatch,toolsControl,MOARkNOBS42,MN42Configurator,arduinoSketches,microGranny2,x0xb0x,toolsAnalysis,frZone,teensyDSP tools; class scenesPillar,scenesWorks,perceptualDrift,pointyClumps,droneChorus,roomLens,StringFieldNode,DiceLoopNode,hallwayReactor,ArduinoSculpture,HumanBuffer,memory_engine,scenesStage,liveRig,liveRigCtrl,interstream,maelstrom,scVideoMixer,clipFoundry,deskCam scenes; class learningPillar,learnCurricula,cMCurricula,scratch,printing,lego,piper,dronesEd,privacyMedia,learnFactory,SyllabusRepo,ART215,learnDocs,repairStudio,machineDocs,learnOps,teacherOps learning; class infraPillar,infraLMS,djangoLMS,classhub,infraStack,infraFleet,piImaging,docker,server,openvpn,infraArchive,llfs,studio1,ghPages,infraLab,homeauto,turingpi2,printServer,infraGov,governance infra; class studioNotes cross; class agencyHub,opennessHub,resilienceHub hub;

Choose a doorway

Tools

Instruments, kits, and control layers built for consent-forward use.

Explore tools

Scenes

Performances and installations that keep power dynamics visible in the room.

Explore scenes

Learning

Curricula and learning environments for justice-centered digital literacy.

Explore learning

Systems & Distribution

Infrastructure, publishing workflows, and governance that move the work outward.

Explore systems

Cross-project layer

Distilled patterns, decisions, trusted reference, and teaching cards harvested from the project repos.

Open studio-notes

Reading rules

How to read the fleet without overreading it

The portfolio carries public claims and selected proof objects. Repositories carry live implementation truth. Atlas carries the relationships between those things. Method notes explain the reusable patterns that keep the claims legible.

  • Methods names the cross-project patterns: evidence, documentation, assumption ledgers, and consent-forward systems.
  • Privacy & Ethics explains why some work remains redacted, staged, or private.
  • Projects marked needs proof or public-safe excerpt are intentionally constrained until stronger evidence is surfaced.