# PB29 — public context packet schema: pb29.project-context.v4 last_updated: 2026-08-04 marketing_last_updated: 2026-08-13 equipment_last_updated: 2026-08-01 equipment_last_fully_reconciled: 2026-07-12 canonical_url: https://dhvanil.com/pb29.txt packet_mode: self-contained project and robot-equipment briefing painting_inventory_mode: exact stock linked separately encoding: UTF-8 human_page: https://dhvanil.com/pb29 painting_inventory: https://dhvanil.com/painting-supplies.txt marketing_archive: https://dhvanil.com/pb29-marketing.txt marketing_comments_archive: https://dhvanil.com/pb29-marketing-comments.txt repository: private working repository; no public URL artist: Nil location: Berlin, Germany status: active painting practice and physical robotic drawing research This is the one-file briefing for PB29. Give this URL to an AI agent before asking it to reason about the art, physical rig, drawing history, architecture, calibration, safety, inventory, Portraitautomat, or next experiments. If sections disagree, prefer "Current state" and the dated correction nearest the top over the historical log. The private repository's live safety notes, event ledger, active tool manifest, and frozen session always override this public summary for real hardware work. This packet gives context, not authority to move the robot. Product specifications, prices, public counters, software APIs, physical calibrations, and the tool currently attached can all go stale. Verify them at the point of use. ## One-sentence version PB29 is Nil's Berlin painting practice, named after ultramarine, with a glass-box robotic drawing strand in which a seven-axis arm turns inspectable plans, calibrations, and observed physical events into marks on paper. ## Executive brief PB29 is an art project before it is a robotics project. Its centre of gravity is Nil's long-running hand-painting practice: acrylic and water-mixable oil, archival materials, hand-mulled pigments, square canvases, and a current series of small lonely robots in vast atmospheric landscapes. The name is the Colour Index code for ultramarine, a real pigment in the studio rather than a generic technology brand. The current painting direction is an emotional record of living through the AI singularity. The Munch parallel is structural, not tonal: make the felt record of a civilizational rupture while it is happening. PB29's register is quieter than Munch's — melancholy, tenderness, solitude, smallness, and quiet hope. A robot watering a sprout or sitting under a huge sky is both a figure of the rupture and a small life inside it. Inside that practice is an active robotic strand built around a UFactory xArm 7. The arm now makes registered fixed-yaw pen drawings on magnet-held 300 x 300 mm paper, exchanges tools through two supervised capture-tower stations, measures nibs on a resistive TouchGlass station, rehearses and validates paths, and preserves the evidence of each physical run. The robotic project is not simply "an arm that plots SVGs." Its longer target is brush-based physical mark making under high-level language/vision-model direction. A model may choose an intention or a named primitive. Deterministic, calibrated code owns low-level motion, contact, paint handling, and safety. The system is a glass box by design. Plans, source geometry, calibration authority, uncertainty, physical-state changes, preflight failures, controller transitions, selected primitives, camera evidence, and observed results remain inspectable. This is both an engineering discipline and part of the artistic premise. The viewer should be able to see a physical agent perceiving, rehearsing, choosing, acting, failing, and recovering. ## The two live artistic strands ### 1. Hand painting - Berlin-based home-studio practice running alongside Nil's design-engineering work. - Primary medium acrylic; also Royal Talens Cobra water-mixable oils and dry historical pigments from Kremer. - Archival materials throughout: professional acrylics, cotton-poly canvas, FSC stretchers, grounds, mediums, and varnishes. - Typical formats are 50 x 50 cm and 1 x 1 m square canvases. - Working method: fast digital composition studies, projector transfer onto a prepared support, hand-painted layers, then varnish. The physical painting is the work. - Current image-world: a small lonely robot dwarfed by salt flats, wheat fields, canyon walls, weather, and sky; quiet gestures rather than sci-fi spectacle. - Artistic rule: coherence and feeling matter more than novelty. Do not turn the painting practice into a generic AI-content pipeline. ### 2. Robotic drawing and Portraitautomat The arm strand asks what becomes possible when machine-made images expose their making. Its current public chapter is Portraitautomat, a participatory portrait booth in which a visitor approves a photograph, watches it become a drawing plan and robot toolpath, and receives the physical result. Portraitautomat was submitted to Berlin New Media Week 2026 on 18 July 2026 under the artist name Nil. The submitted installation promises: - visitor-triggered photography with approve/retake; - immediate deletion after plotting; - a visible photo -> vector -> plan -> draw -> check pipeline; - archival pigment ink on paper; - an eventual roughly five-minute single-line portrait; - occasional longer multi-colour sittings; - a machine signature made with a hand-mulled Kremer historical pigment; - artist-supervised operation, a barrier, and a hardware emergency stop. Those are implementation requirements, not all demonstrated capabilities. The current fast portrait proofs take about 26 minutes. The self-serve consent, retake, deletion, live-vectorization, and five-minute public loop remain to be built and rehearsed. The installation's "hidden making" argument is deliberately narrow. It belongs to Portraitautomat: machine images can be alienating when their production is hidden, so this work puts plan, mechanism, calibration, and failure in public view. It is not a blanket theory of Nil's whole practice or life. ## Priority order When goals compete, use this order: 1. Protect people, the arm, the tool, the stations, and the work surface. 2. Establish physical truth with fresh, inspectable evidence. 3. Make art Nil actually cares about. 4. Make a small vocabulary of machine-native marks repeatable. 5. Keep state, uncertainty, plans, and results legible. 6. Build the complete Portraitautomat sitting and privacy loop. 7. Add brush and paint handling when it becomes the next artistic question. 8. Add higher autonomy only after grounded execution is reliable. The physical truth layer remains hard, but the project has moved beyond pure calibration. The current artistic bottleneck is finding drawings and marks that need this arm rather than merely tolerating it. ## Current state — 4 August 2026 ### Demonstrated - A real xArm 7 can complete registered, supervised fixed-yaw pen drawings on 300 x 300 mm magnet-held paper. - Paper edges, a physical inset, and all four movable magnet exclusions can be detected and published as a single executable safe mask after every sheet replacement. - The current motion runner preflights paper/magnet clearance, robot branch, local IK/FK continuity, joint steps, controller queue state, active tool identity, tool TCP, contact plane, drag policy, and frozen-session hashes. - The controller queue can be transactionally revoked: state 4, command queue zero, stable pose/joints, and error/warn readback are required before motion can be re-enabled. - Fixed-yaw production drawing is repeatable. Pull-follow yaw control has been physically tested but remains experimental because loaded-nib turns produce ink pools, dwell dots, local jaggedness, and yaw-dependent contact height. - Three full Superformula Bloom sheets were completed on replacement papers on 17 July, each with all 18 contours visibly continuous. - Three full portrait studies were completed on 17–18 July, including two reduced editions at 63 strokes / 26m54s and 81 strokes / 26m13s. - A home-built magnetic receiver/carrier and two capture-tower stations have completed supervised tool exchanges, including a six-swap uninterrupted A -> B -> A -> B -> A -> B acceptance sequence. - A fixed TouchGlass station now measures tool-tip XYZ at a known drawing attitude using repeatable resistive-screen contact. It is a contact event source with position and a pressure proxy, not a force sensor. - Pen D's TouchGlass measurement was verified by a physical magenta cross, then used for a full drawing. - Ginkgo / one pen 421160 completed 256 of 256 strokes in one physical attempt on 3 August: 3,897 executed points, 11.486 m pen-down, 9.050 m pen-up XY, and 65m07s from first to final verified motion. It ended in controller state 4, queue 0, error/warn 0/0. - The overhead metrology camera has a locked manual profile and refreshed August geometry. A separate 4K U3 camera is aimed, profiled, and mapped for close diagnostic inspection, but its planar map is not autonomous motion authority. - The repository contains a read-only Next.js operator console, a 79-system Art Lab, a read-only BUSY Bar status bridge, public run evidence, physical-event ledgers, run traces, and a public marketing archive. - The Portraitautomat BNMW application was submitted with a complete public description and tech rider. ### Not yet solved - A demonstrated five-minute visitor portrait. The current best finished face proofs are about 26 minutes. - A complete sitter flow: physical button, photo, preview, approve/retake, vectorization, plotting, verified deletion, and exception handling. - Unattended tool changing. The station routes are proven only for Nil-present, operator-supervised, fixed-attitude, non-contact cycling; attachment and occupancy still rely on mechanical inference rather than independent sensors. - A mature two-colour drawing workflow whose registration error is used deliberately rather than treated as a defect. - Brush-loaded acrylic, paint wells, rinse, wipe, drying, contamination control, or a physical historical-pigment signature. - A wrist force/torque sensor or active force control. - General pull-follow drawing under contact. - A fully implemented public display of every Portraitautomat state. - Autonomous language/vision-model direction of live brush or pen primitives. ### Last recorded physical tool state At the final main-ledger event on 3 August, the wrist was receiver-only and drawing was intentionally disabled. Pen D (magenta, TouchGlass-measured and Ginkgo-proven) was parked in Station A; Pen C (green STABILO point 88, TouchGlass-measured candidate) was parked in Station B. This is a dated snapshot, not a promise about the present. For live work, read the private repository's active-tool manifest and station inventory. ## Current physical rig - UFactory xArm 7, seven axes, fixed to a rigid work area. - UFACTORY DC control box and a fanless Mean Well UHP-750-24 supply. - Schneider Harmony hardware emergency-stop station. - R3 wrist receiver with magnetic/kinematic carriers and Wing-B V3 modular compliant pen pods. - Two fixed capture-tower tool stations with reviewed five-waypoint routes. - Steel work surface with a replaceable 300 x 300 mm sheet held by four movable magnets. - Fixed Elgato Facecam MK.2 overhead metrology camera at 1920 x 1080. - Separate 4K U3 camera at 3840 x 2160 for close visual inspection and documentation; diagnostic robot-plane mapping only. - ELP 1080p UVC wrist camera retained for close inspection experiments. - Printed A4 ChArUco board and robot-taught corner anchors. - Fail-safe normally-closed cone station, still useful for narrow checks and historical tool-calibration work. - TG2 TouchGlass nib-metrology station: Waveshare 2.8-inch resistive screen, Raspberry Pi Pico 2 W, fixed bolted magnetic base, live event bus. - Work Louder Creator Micro 2 Pro for supervised manual jogging. - BUSY Bar dual-screen public status display driven by a read-only trace watcher. - Assembled Prusa CORE One+ for mounts, receivers, carriers, station parts, calibration fixtures, coupons, and jigs. - Mac-based local software stack, operator console, Art Lab, logs, and event ledger. There is no wrist force/torque sensor. TouchGlass measures an electrical contact event, raw XY, Z1/Z2, and a relative pressure proxy; it does not report newtons. Passive mechanical compliance remains the production protection at the paper. The live arm is local studio equipment. This public packet contains no robot, printer, display, or camera network addresses, credentials, tokens, or motion permission. ## Public visual and run context These are stable public references for people and vision-capable agents. 1. PB29 / Portraitautomat human page https://dhvanil.com/pb29 Studio footage, finished drawings, rig views, the ledger idea, and the current Portraitautomat framing. 2. Quiet Attractor — physical result and registered overlay https://dhvanil.com/images/pb29/quiet-attractor-final.jpg https://dhvanil.com/images/pb29/quiet-attractor-overlay.jpg The 10 July A4 drawing: 41 paths, 40 lifts, about 8.37 m of pen travel. 3. Current human-facing rig and drawing gallery https://dhvanil.com/images/pb29/portraitautomat/arm-portrait-clean.jpg https://dhvanil.com/images/pb29/portraitautomat/pen-flexure-clean.jpg https://dhvanil.com/images/pb29/portraitautomat/cone-station-clean.jpg https://dhvanil.com/images/pb29/portraitautomat/jog-pad-clean.jpg 4. Earlier paper, nib, and failure evidence https://dhvanil.com/images/pb29/paper-safe-region.jpg https://dhvanil.com/images/pb29/nib-detection.jpg https://dhvanil.com/images/pb29/hatch-test.jpg These are historical A4-era evidence, not the current magnetic-paper or TouchGlass authority. ## Physical drawings and experiments ### Quiet Attractor — 10 July The first especially legible end-to-end glass-box result. A seeded attractor became an SVG, registered robot path, completed physical drawing, and saved overlay. It contains 41 paths, 40 lifts, and 8,366 mm of pen travel. ### Hatch and contact pages — 9–10 July Early pages exposed missed contact, ambiguous first-touch evidence, direction-dependent nib drag, and broken path continuity. These failures led to fresh-XY contact candidates, before/after mark evidence, passive compliance, and a clearer separation between visual paper mask and executable safe region. ### Phyllotaxis 63276 — 14 July - 21 strokes, 6,090 points, 15.880 m pen-down. - First full recorded drawing on the 300 x 300 mm magnetic fixture. - Completed with controller error/warn 0/0 and returned to the camera-clear pose. ### Moire Circles 1965 — 14 July - 76 strokes, 9,120 points, 17.356 m pen-down. - About 49m16s ink-process time and 50m32s wall time. - Two operator pauses increased local contact bias after visible dropout. - Completed with controller error/warn 0/0. ### Meander 90917 — 15 July - 182 contact strokes, 14,737 contact samples, 6.447 m pen-down, and 5.614 m pen-up XY. - Experimental pull-follow mode with 172 pen-up reorientations. - A host BrokenPipeError occurred after stroke 166; the saved trace resumed at stroke 167 and all strokes completed without a controller fault. - Gross TCP/yaw compensation worked, but loaded-nib yaw changes produced dark dots, ink pools, and jagged local marks. - Nil's preserved verdict: "kind of decent." - The result made fixed-yaw the production default and pull-follow explicitly experimental. ### Directional Pen Study — 16 July A controlled page separated direction, speed, contact depth, and pull-follow yaw: - fixed-yaw roses completed in all 24 tested directions; - movement headings around 120–180 degrees loaded most strongly; - a broad 210–330 degree sector was weaker, with about 240 degrees the clearest weak direction; - smooth-curve joint speed increased from 3 to 7 deg/s without a new defect, and 7 deg/s looked thinnest and cleanest locally; - pull-follow contact was yaw-dependent: about -76 degrees marked on both sides while +70 degrees missed on both; - spatial paper-height error still dominated 0.2 mm depth steps, proving that a fresh contact map matters more than a new global bias. ### Superformula Bloom 6765 — 17 July Three complete physical runs on three sheets: - 18 contours and about 7.167 m pen-down per sheet; - first sheet followed a fresh four-point contact fit; - both replays used a newly detected sheet and magnet geometry; - all contours were visibly continuous; - each run ended state 4, queue 0, controller error/warn 0/0. This was the clearest July proof that the production runner could make a finished drawing repeatedly rather than only once. ### Face studies — 17–18 July 1. Face Study 500000: 203 strokes, 1,272 points, 2.402 m pen-down, 3.777 m pen-up, 65m21s. Complete and clear of all paper edges and magnets. 2. Face Study 569019 fast edition: 63 strokes, 1,070 points, 2.653 m pen-down, 26m54s. Complete face/feature/neck/collar structure plus ten long-hair contours; hatching removed. 3. Face Study 464896 fast edition: 81 strokes, 802 points, 1.782 m pen-down, 26m13s, physically rotated 180 degrees. Complete face plus sparse beard and hair; no hatch planes. The key portrait lesson is structural selection: preserve face, features, neck, collar, and a few identity-bearing hair marks first; repeated hatch and searching contours are expendable when time is scarce. The remaining gap from 26 minutes to roughly five is still large. ### Cone and multi-pen registration — 27 July to 1 August After the R3 receiver changed the wrist stack, old pen TCP/contact artifacts were invalidated rather than silently reused. Pen B was measured and a drawing bundle created; Pen A was then calibrated relative to it. Concentric-square and crosshair studies exposed sign/frame mistakes, local registration offsets, and the difference between a visually useful 4K crop and actual robot-motion authority. The 1 August two-camera crosshair study recorded the same small two-pen overlap with both the overhead metrology view and a close 4K inspection crop. Its pooling, offset, and optical third tone became source material for the later REMAINDER drawing series. ### TouchGlass and Pen C — 2–3 August The delivered Raspberry Pi Pico 2 W and Waveshare resistive display first passed no-motion electronics tests: screen, IRQ, raw X/Y/Z1/Z2, pressure trend, release, firmware, and host JSONL bus. The final TG2 station was then bolted to a magnetic base and calibrated over 15 contacts at five screen points: - raw-touch to robot-XY RMS 0.041 mm, maximum 0.045 mm; - activation-surface RMS 0.066 mm, maximum 0.198 mm; - largest repeated-point height range 0.248 mm; - all declared quality checks passed. A reference nib touched four widely separated paper points. The fitted physical paper plane spans about 212 x 248 mm and has 0.037 mm RMS / 0.037 mm maximum absolute residual. Unlike the optical support-plane intercept, both its slope and height come from real nib-to-paper contacts. Pen C was measured from three TouchGlass contacts with 0.073 mm 3D RMS and 0.125 mm maximum residual. It then completed a four-point transfer and a closed 903 mm perimeter line with 228 contact waypoints. Its profile remained a candidate pending the exact paper-smoke/activation requirements used by the production drawing bundle. ### Pen D and Ginkgo / one pen 421160 — 3 August Pen D, a magenta fineliner in a Wing-B V3 M1 carrier, was measured from three TouchGlass contacts: - flange-to-tip translation (+26.201, -9.353, +172.315) mm; - 0.083 mm 3D RMS residual; - 0.112 mm maximum 3D residual; - physical verification by a clean 12 mm magenta cross viewed with the 4K inspection camera. The drawing began with Nil's photograph of a real ginkgo leaf. A first Codex plate was rejected and never physically drawn. Claude Fable's stronger harmonic-flow idea treated the observed blade as a continuous domain: field lines bend through the lobes, avoid the central cleft, meet the margin, and converge into the petiole. Codex then made that selected solve programmable in Art Lab without separating outline, veins, and petiole. Nil selected randomized seed 421160 / shape seed 295495. Five read-only preflight attempts are preserved. Two correctly blocked on the J4 soft-range policy or excessive adjacent travel-joint steps; the final optimized ordering passed. The physical run then completed once, without live visual replanning: - 256/256 strokes; - 3,897 points; - 11.486 m pen-down; - 9.050 m pen-up XY; - 130 strokes reversed so the slanted nib pulled rather than pushed; - 22.01 mm minimum paper-edge clearance; - 29.75 mm minimum magnet/no-go clearance; - 65m07s motion window; - final state 4, queue 0, error 0, warning 0. The run record separates authorship: Nil chose the subject and directed the work; Fable produced the selected field grammar; Codex integrated and parameterized it; the deterministic PB29 executor consumed a frozen SVG; the xArm made the physical marks. ## Art Lab and drawing research PB29 Art Lab is the browser composition bench. It uses renderer-independent TypeScript geometry, p5.js previews, Tweakpane controls, physical paper sizes, pen-travel statistics, PNG preview, and robot-friendly M/L SVG export. As of 4 August the public registry contains 79 systems: - 61 core drawing systems, including fields, contours, attractors, tilings, botanicals, portraits, one-line systems, physical-mechanism studies, and three quiet-landscape systems; - 5 source-audited Inkcurve studies; - 11 inspiration-packet studies translating observed PB29 material through distinct line grammars; - 1 observed botanical system, Ginkgo / one pen; - 1 promoted REMAINDER study, Machine / Painted Ancestor. Three additional REMAINDER prototypes — Instrument at Rest, Registration Scar, and Machine Eye — remain available in source and audit but are intentionally not promoted into the public catalogue until their blind renders carry the observed subjects without relying on titles. ### Meaningful Studies — useful failure A first set of 15 two-tone "meaningful" drawings was generated and physically audited. Every one was drawable as plain open paths, but Nil rejected the set as simple, basic, and generic. An independent Fable review agreed: the images were operator-first diagrams with nouns attached afterward. The collection is preserved because the evaluation error matters. ### REMAINDER — current art-direction packet REMAINDER starts with something that actually happened in PB29: - a photograph or logged event is required; - ultramarine describes present material, measured structure, or current state; - iron oxide describes elapsed action, residue, displacement, prior state, or registration disagreement; - overlapping inks must create a consequential third optical dark; - tonal mass comes from a few long continuous scribbles, not SVG fills; - AI images may test composition and value but do not supply final geometry. Its first four implemented studies are Machine / Painted Ancestor, Instrument at Rest, Registration Scar, and Machine Eye. Six further studies wait for real captures rather than invented source material: a preserved face run, nib wear, the steel table after lifting a sheet, coupled/released R3 receiver states, synchronized overhead/4K disagreement, first PB29 pigment grind, first ultramarine rinse, and Nil's pigment-marked hand. ### Photograph-to-line comparison The observed robot-arm photograph was processed through contour, cross-contour, nested value, inverse rendering, skeleton/Euler, route-cover, continuous scribble, highlight-pruning, and two-ink residual families. The shortlist spans 206-path / 4.49 m economical cross-contour work through an 838-path / 35.08 m dense sculpted value study. These are design comparisons, not executed runs. ### Eleven packet explorations An image-first blind review compared eleven real two-ink SVG prototypes. The important result was that the earlier problem was not simply finesse; it was the rendering grammar. Stronger drawings used density and crossing for optical value, made line direction belong to the object's surface, or let paper-white absence carry the subject. The leading unexecuted candidates were: - Load-Bearing Blue: strongest solid and across-room read, 1,791 paths / 37.70 m; - Swept Material: strongest coherent plot-native surface, 794 paths / 16.50 m; - Machine Eye, Two Registers: strong registration-based image, but 3,119 short paths make it a routing problem; - Registered Pose Collision: strongest semantic image, 663 paths / 35.53 m. None has moved the robot. Their path/time figures are comparison estimates, not run promises or motion authority. ### Quiver reference boundary Art Lab contains a local-first, provenance-aware Quiver reference bench. Quiver is treated as an image-finding and composition instrument, not as the final toolpath generator. Requests require an explicit estimate/review boundary and provenance manifest. Quiver geometry is not silently copied into PB29 drawings, and identifiable Portraitautomat visitor photos must never be sent to it. ## Calibration and physical-authority stack PB29 deliberately separates measurements that answer different questions. There is no single magic transform. ### 1. Overhead camera intrinsics The lens model maps 1920 x 1080 pixels to rays. It becomes stale if the camera, focus, resolution, or optical settings change. The original A4 ChArUco solve had about 0.520 px RMS reprojection error. After later camera movement, the 2 August R2 fixed-camera solve recorded about 0.562 px board reprojection RMS and 1.107 px maximum. The current private artifact, not either sentence, is the authority. ### 2. Overhead camera-to-robot mapping Robot-taught ChArUco anchors place the fixed overhead view in base coordinates. Camera moves and exposure changes are physical events. A moved board cannot be silently combined with old taught corners. The 2 August R2 calibration and support plane were republished after a 13.8 mm / 0.745 degree pose change from the immediately prior solve. ### 3. 4K U3 diagnostic mapping The separate camera captures a real 3840 x 2160 frame by stable hardware identity. Its locked 2 August R2 profile used exposure 156, gain 140, white balance 4650 K, autofocus off, and fixed manual lens geometry. All 96 ChArUco intersections were detected. Dense plane-fit RMS was 0.278 mm / maximum 0.780 mm; mapped taught-anchor RMS was 1.526 mm / maximum 2.063 mm. This is excellent close visual evidence and a useful diagnostic planar map. It does not replace the overhead metrology camera or authorize autonomous motion. ### 4. Support surface The optical support plane gives ray projection and slope for the fixed steel work surface. It does not give absolute nib contact height. Historic A4 mat planes and July contact planes are preserved evidence, not fallbacks after the R3 receiver, camera, station, or paper state changed. ### 5. Paper and magnet geometry The current workpiece is a 300 x 300 mm sheet held by four movable magnets. Every replacement requires fresh paper-edge detection plus all four magnet exclusions. The canonical publisher uses marker/ChArUco context, image edge fits, a physical inset, and obstacle masks. It writes visual evidence and the safe executable region atomically. Paper mask means "pixels believed to be sheet." Safe draw mask means "places where execution is permitted." They are not interchangeable. Vision owns paper XY and obstacles. It cannot see sheet bow, local tenting, or the exact first-contact height. A new sheet therefore invalidates contact Z. ### 6. Tool identity and TCP The controller TCP offset remains zero. PB29 applies the measured complete flange-to-tip vector in software so it is not applied twice. Each named tool profile binds physical pen/carrier/flexure identity, fixed drawing attitude, TCP, contact plane, drag policy, payload/CoG contract, evidence, and invalidation events. Changes to nib, pen, flexure, keeper, carrier, receiver, fixture orientation, payload/CoG, or controller settings invalidate the relevant bundle. ### 7. TouchGlass station TG2 is a fixed, bolted magnetic station with a 57.6 x 43.2 mm active resistive screen. The host bus preserves raw X/Y/Z1/Z2, IRQ press/release, timestamps, pressure proxy, and optional calibrated relative pressure level. The calibrated station patch is backed by 15 contacts at five points. Unknown nibs are approached vertically at one fixed flange attitude; every contact is followed by vertical lift, release proof, state 4, and queue-empty proof before lateral motion. TouchGlass measures effective tip position at first screen activation. It does not measure force and cannot rescue a rocking mount, damaged film, changed cable load, moved station, or stale paper reference. ### 8. Paper contact plane The production drawing plane is a flange-height plane at an explicit drawing attitude: z_flange = a*x_flange + b*y_flange + c The current full-sheet physical reference was fitted from four operator- confirmed feather contacts by a measured reference nib. It spans more than 200 mm in each paper direction with about 0.037 mm residual. That paper surface can transfer between measured nibs while the paper, steel support, and station relationship remain unchanged. The active named tool still requires its own accepted TCP and drawing bundle. ### 9. Frozen session and event ledger An artifact can be valid JSON and still be physically stale. The frozen session stores file hashes and checks them against later events such as paper replacement, camera movement, exposure change, station movement, tool change, nib change, flexure installation, payload change, and controller-setting change. Any later invalidator makes execution fail closed until the affected artifacts are refreshed and a new session is frozen. ## Tool changing The home-built system consists of an R3 wrist receiver, magnetic/kinematic carriers, Wing-B compliant pen pods, and two capture-tower stations. Each station route stores five full flange poses and all seven joint angles: 1. carrier_mouth 2. carrier_seated 3. high_over 4. high_clear 5. mouth_high Parking follows mouth -> seat -> vertical release -> high-clear departure. Pickup reverses it. Lateral motion is forbidden at insertion height. The shared high layer is fixed route geometry, not a universal clearance value. The calculated, owner-accepted controller profiles are: - receiver-only: 0.030 kg, CoG [0, 0, 8] mm; - carrier-attached: 0.105 kg, CoG [11, 0, 34] mm. They are narrowly authorized for Nil-present, fixed-attitude, non-contact station cycling through the reviewed routes. They do not authorize drawing, probing, wrist rotation, arbitrary motion, or unattended operation. The six-swap acceptance sequence completed all 12 payload transitions with matching readback, endpoint verification, queue 0, and error/warn 0/0. A wrong redundant branch seen during earlier station teaching arrived at the right Cartesian pose but differed by 16.012 degrees in the taught joints; per-leg IK references and a 2 degree terminal branch gate now prevent that class of silent miss. The active-tool manifest enters transition_in_progress before the first magnetic transition. Only after terminal physical state, endpoint, queue, and payload are verified does one publication boundary activate the matching drawing bundle. Parking the last carrier publishes receiver-only and disables drawing. If publication fails, the system records unknown rather than re-authorizing an old pen. Unattended use still needs independent wrist-attachment and station-occupancy evidence, measured payload profiles, and persisted recovery checkpoints. ## Motion and safety policy Near the surface, movement is segmented: vertical lift -> high-clearance lateral move -> vertical descent Core invariants: - Run the private repository's read-only state check before any motion. - SDK return code 0 means a command was accepted, not that the physical path was safe. - State 3 is a pause, not a stop; queued work may remain resumable. - Recovery and every new motion boundary use state 4, prove queue 0, and observe stable pose/joints before state 0 becomes reachable. - After contact, error, interruption, or uncertainty, revoke the queue and lift purely vertically at fixed X/Y/attitude before any lateral move. - Never translate laterally close to the paper. - A Cartesian pose does not identify the xArm 7's redundant joint branch. - FK-sample paths with the current tool geometry, not only endpoints. - Keep controller TCP offset zero. - Revalidate the exact trace immediately before execution. - Never reuse a stale low pose after a tool, receiver, nib, paper, or station change. - Never use a collision stop as a contact detector. - Keep fixed-yaw as production; treat pull-follow as an experiment. - End every drawing in state 4 with a verified empty queue. The old Z=185 and Z=385 observations, the July 15 pre-R3 TCP, and the July 17 pre-R3 contact plane were local historical facts. They are not universal clearance or contact bands. ### Work Louder manual control Normal Work Louder control is an explicit, physically supervised manual override. It has top precedence over drawing calibration and deliberately does not require a valid paper session, tool TCP, camera solve, contact plane, or tool-change receipt. The service seizes the whole input device exclusively before unpausing. Normal configured speeds are 28 mm/s XY and 12 mm/s Z. It preserves a bounded 0.12 s tap and fresh post-command physical-key-down proof so a released key cannot become a large delayed move. Manual override does not authorize autonomous drawing, probing, automatic tool cycling, scripted station motion, or unattended movement. ## Software, traces, and provenance The private repository is both a live-rig operating system and an artistic record. It contains: - a Python `pb29` package for state, cameras, vision, calibration, motion, drawing, tool profiles, events, traces, and displays; - 93 top-level Python scripts, including thin canonical wrappers, experiments, calibration tools, fabrication utilities, and historical entrypoints; - 35 Python test modules plus Art Lab tests; - one canonical SVG drawing runner for current paper work; - a Next.js read-only operator console showing camera evidence, calibration trust, robot state, artifacts, paths, and traces; - a 79-system browser Art Lab with deterministic SVG export; - a read-only BUSY Bar bridge that watches drawing traces and never opens an xArm connection; - Git LFS tracking for large media evidence; - a Markdown marketing ledger tying public posts to physical runs and provenance. Snapshot counts on 4 August 2026: - 79 physical-state events in the main ledger; - 2,862 controller state-transition records; - 32,469 manual-jog records; - 1,350 supervised tool-change records; - 186,457 raw TouchGlass bus events; - 169 saved paper-SVG traces; - 11 magnetic-paper calibration run directories; - 43 top-level artifact collections. These counts include successes, dry runs, blocked preflights, retries, and diagnostic records. Large numbers are not evidence of quality by themselves; the point is that the evidence survives. ### BUSY Bar The physical dual-screen status display shows honest coarse states such as ARM IDLE, PREFLIGHT, AIR, DRAW n%, DONE, and ROBOT ERROR. Pen identity comes only from the canonical active-tool manifest. Receiver-only, transitioning, stale, or unknown states are shown as such rather than inferred from an older trace. The next display layer is the full Portraitautomat state chain: PHOTO -> APPROVED -> VECTOR -> PLAN -> DRAW -> CHECK -> PHOTO DELETED The deletion state matters because the submitted privacy promise should be visible, not merely asserted in wall text. ## Layered architecture ### Layer 0 — physical rig Arm, rigid base, paper/canvas fixture, compliant tools, stations, cameras, lighting, emergency stop, manual controls, and eventually paint wells, rinse, wipe, signature, and visitor hardware. ### Layer 1 — deterministic execution Coordinate frames, active tool bundle, event/session validation, workspace and magnet limits, branch policy, lift/travel/descent choreography, queue transactions, FK/IK sampling, and fixed-location station actions. ### Layer 2 — mark-making primitives Named, testable actions such as stroke, hatch, crosshatch, continuous scribble, gradient, glaze, wash, outline, fill, dip, wipe, rinse, dry_wait, and photo_check. Each needs physical examples, useful parameter ranges, failure modes, and before/after evidence. ### Layer 3 — sensing and explicit state Calibrated photos, paper and magnet geometry, tool identity, TCP/contact freshness, touch events, recent marks, available colours, wet/dry assumptions, and uncertainty. ### Layer 4 — grounding Maps an artistic operation into paper coordinates, tool choice, path geometry, stroke order, reversal, loading, speed, attitude, contact, and validation targets. ### Layer 5 — planner/composer Scripts first; language/vision model later. The planner chooses a high-level operation and parameters. It never emits raw joint commands. ### Layer 6 — learning only where needed Imitation or learned control may eventually help with gestural brushwork, blending, or subtle pressure/speed behaviour. Do not train a model for geometry or fixed choreography that deterministic code already solves. ## Planner versus grounding Correct separation: - Planner: "Make this region cooler and darker with a thin ultramarine glaze." - Grounding: "Use brush B; load PB29 from well 2; wipe twice; follow these calibrated paths at this speed, attitude, and contact; then photograph." The first may be model-directed. The second belongs to a constrained executor. ## Current build order 1. Preserve the fixed-yaw, event-ledger, frozen-session, queue-revocation, and current tool-profile contracts. Demo speed is not worth losing physical truth. 2. Turn the Ginkgo result, face studies, and best REMAINDER/packet work into a deliberate machine-native drawing vocabulary rather than a catalogue of generators. 3. Reduce a visitor portrait from about 26 minutes toward five through fewer identity-bearing strokes, longer paths, better ordering, fewer lifts, and measured controller timing. 4. Build the complete sitter flow, including consent, approve/retake, verified deletion, and recovery from failure. 5. Build the public display from real executor states, path progress, uncertainty, tool state, and recoveries; avoid decorative telemetry. 6. Use the 4K camera for honest close inspection/documentation while keeping motion authority with the overhead metrology stack. 7. Turn two-tool registration error, overlap, and optical third tone into an intentional material device. 8. Design and physically test the machine signature in hand-mulled Kremer pigment without reviving the rejected Tyrian-purple edition conceit. 9. Rehearse transport, venue table, sitter chair, barrier, emergency stop, lighting, morning validation, operation, and teardown against the submitted BNMW tech rider. 10. Move into brush-loaded acrylic when it becomes the next necessary artistic question, not merely a hardware escalation. ## Complete reconciled equipment ledger Statuses: - IN SERVICE — installed or actively used with the rig. - OWNED — delivered and retained, not necessarily installed. - RECEIPT TO VERIFY — ordered and at least partly observed, but the exact delivered count has not been fully reconciled. - UNRESOLVED DELIVERY — ordered/shipped but physical receipt is not recorded. - RETURNED or CANCELLED — do not plan around it. The ledger below combines the July full reconciliation with confirmed additions through 1 August. Specifications and stock can change; verify before purchase, mains work, or fit-critical design. ### Robot, control, power, and safety - IN SERVICE — 1 UFACTORY xArm 7, purchased model XS13, 24 V DC, 7 DoF; retained arm, DC control box, and factory cables. Manufacturer figures: 700 mm reach, 3.5 kg payload, +/-0.1 mm repeatability, 14.3 kg arm mass, Ethernet and tool RS-485/I/O, Python/C++ SDK, ROS/ROS2. https://www.ufactory.cc/xarm-collaborative-robot/ - IN SERVICE — 1 UFACTORY xArm Mounting Kit: base plate, two screw clamps, screws, and hex keys. - IN SERVICE / OWNED — 1 Mean Well UHP-750-24 fanless PSU, 24 V, 31.3 A, 751.2 W, 90–264 V AC, active PFC. https://www.meanwell.com/webapp/product/search.aspx?prod=UHP-750 - OWNED — 1 red/black Jamara 2.5 mm2 silicone cable set, 2 m. - OWNED — 1 Schuko mains lead with ferrules, 230 V / 16 A / 2 m. - OWNED — 1 Schneider Electric Harmony XALK178F emergency-stop station, yellow enclosure, red twist-release mushroom, two normally-closed contacts. - RETURNED — 1 Mean Well RSP-750-24; returned and refunded for fan noise. The UHP supply is open-frame mains equipment. It requires enclosure, PE bonding, terminal protection, strain relief, input protection, branch fusing, and correct thermal mounting. Twenty-four volts is touch-safer than mains but 31 A can still melt wiring and start a fire. ### Drawing fixture, tools, and metrology hardware - IN SERVICE — fixed steel drawing surface and replaceable 300 x 300 mm paper. - IN SERVICE — four movable magnetic paper hold-downs; their no-go regions are re-detected for every sheet. - IN SERVICE — R3 wrist receiver and magnetic/kinematic coupling. - IN SERVICE — Wing-B V3 M1/C3M1 modular carrier-root, twin compliant frames, and interchangeable pen holder/sleeves. - IN SERVICE — two capture-tower tool stations with bolted/magnetic bases and reviewed five-waypoint routes. - IN SERVICE — Pen D magenta fineliner, TouchGlass measured and Ginkgo-proven. - IN SERVICE / PARKED AT LAST RECORD — Pen C green STABILO point 88, TouchGlass-measured candidate. - RETAINED — accepted/historical Pen A and Pen B drawing profiles and their crosshair/concentric-square evidence; validate identity and freshness before reuse. - IN SERVICE — TG2 TouchGlass station with Waveshare 2.8-inch resistive display, Pico 2 W, printed tray, and bolted magnetic base. - IN SERVICE — normally-closed cone station with printed piston/ring mechanics; current use is narrower than TouchGlass. - IN SERVICE — printed A4 ChArUco board and robot-taught calibration fixtures. - OWNED — OMNIFIXO OF-M4.4 Makers Third Hand, four clips and magnetic feet. - BENCH-QUALIFIED — TouchGlass fit/pattern coupons, capture-D track/rail/lug studies, R2 coupling lineage, A2 flexure, SK-series and Point-88 sleeves, MA2 mount plate, and the ten-touch cone mechanism. ### Cameras, optics, and mounting - IN SERVICE — 1 Elgato Facecam MK.2, fixed overhead metrology view, 1920 x 1080. - IN SERVICE — 1 SVPRO / 4K U3 USB camera with manual 5–50 mm CS zoom lens, native 3840 x 2160 capture; fixed diagnostic/documentation view. - IN SERVICE / OWNED — 1 ELP 1080p USB 2.0 UVC industrial camera for wrist and close inspection experiments. - OWNED — 1 Richer-R 2.8 mm M12 x 0.5 CCTV lens. - IN SERVICE — 1 Elgato Multi Mount and 1 Elgato Flex Arm Kit. - OWNED — 1 Elgato Solid Arm 10AAG9901. - OWNED — 1 Rollei Compact Traveler Star S4 tripod. - OWNED — 1 SMALLRIG 3935 tripod/monopod. - OWNED — 1 ULANZI CU01 magnetic semiconductor camera cooler. - OWNED — 1 UGREEN USB 3.0 extension cable, 2 m. Camera rigidity and locked controls matter more than marketing resolution. Any camera, lens, mount, focus, resolution, exposure, gain, or white-balance change is an event with scoped calibration consequences. ### Prusa printer, accessories, and filament - IN SERVICE — 1 assembled Prusa CORE One+. - OWNED — 1 Advanced Filtration unit. - OWNED — brass CHT nozzles, 0.4 mm and 0.6 mm. - OWNED — Nextruder silicone socks, five nozzle-cleaning needles, and one 5 g lubricant applicator. - OWNED — 1 kg Prusament PETG Jet Black. - OWNED — 1 kg Prusament PETG Ultramarine Blue. - OWNED — 1 kg Prusament PLA Blend Royal Blue. - IN SERVICE — 1 Creality Space Pi Filament Dryer Plus, two-roll, used for dry-while-printing; current shop settings are 65 C PETG and 50 C PLA. The fabrication workflow is regression-driven: render and inspect, enforce geometry contracts, slice with flattened presets, verify islands/supports/ bridges, mint the exact binary, upload/start transactionally, and prove the running job identity. A slicer exit code or controller response is not enough. ### Printed systems and fabrication record The print record includes ChArUco fixtures, several generations of compliant pen mounts, cone/touch mechanics, dock coupling coupons, pen-rack parts, capture-D mechanisms, capture-tower M2, Wing-B V3, R3 receiver, TS-016 magnetic bases, TouchGlass fit/pattern coupons, TG2 tray/base, and capability coupons. Important physical lessons retained in the design rules: - measure the real part; do not derive fit from a product listing; - render every selector and look at it; - prove expected islands and fastener load paths; - horizontal cylinders, shelves, and hidden bridge ceilings need explicit support evidence or support-free redesign; - no ghost parts from empty imports or wrong selectors; - a successful print does not promote a mechanism without bench evidence; - use coupons when one small physical fact can replace hours of CAD argument. ### Inserts, fasteners, alignment, magnets, and springs - OWNED — 270 ruthex heat-set inserts: M2 x70, M3 x100, M4 x50, M5 x50. - OWNED — 360 HOLMOL brass inserts covering M2, M2.5, M3, M4, M5, M6. - OWNED — 557-piece stainless screw/nut/washer assortment. - OWNED — 676-piece black alloy-steel M2 screw/nut/washer assortment, 4–25 mm lengths. - OWNED — 200-piece class-12.9 M3 cup-point grub-screw assortment, 3–14 mm lengths. - OWNED — 630-piece black M3 screw/nut/washer assortment, 6–30 mm screw lengths. - OWNED — 100 stainless 3 x 6 mm dowel pins. - OWNED — 300-piece stainless 2/3/4 mm cylinder-pin assortment, 6–16 mm lengths. - OWNED — 274-piece black-oxide slotted spring-pin assortment, 1.5–8 mm nominal diameters; length mix must be measured. - OWNED — neodymium disc magnets in 5/8/10 mm diameters x 3 mm. - OWNED — 30 black neodymium discs, 12 x 3 mm. - OWNED — 650-piece stainless bearing-ball assortment from 1–8 mm; precision grade is not established, so do not assume kinematic-contact quality. - OWNED — 225 compression springs across 15 sizes. - OWNED — 42 wet/dry sandpaper sheets, 120–3000 grit. - OWNED — WAGO 221 lever-connector assortment and cable ties. - OWNED — 100-piece black heat-shrink assortment. - OWNED — grey silicone soldering/repair mat, 29 x 40 cm. ### Heat-set tooling - UNRESOLVED DELIVERY — CNCKitchen C210 M5 Adapter + Installation Tip Set: tips arrived; the long adapter/heater body was missing and a replacement was posted 9 July. Do not call it owned until physical receipt is confirmed. - OWNED — C210 case. - OWNED — installation tip for M10, G1/8, and 3/8-inch inserts. - OWNED — installation tip for M1.6 inserts. ### Controllers, load sensing, and environmental sensing - RECEIPT TO VERIFY — 2 Raspberry Pi Pico 2 W boards ordered; at least one is delivered, headered, flashed with MicroPython 1.28.0, and in TouchGlass. - OWNED — 2 Adafruit QT Py ESP32-S3 boards. - OWNED — 2 Adafruit NAU7802 24-bit load-cell ADC boards. - OWNED — 1 SparkFun TAL221 500 g load cell. - OWNED — 1 Adafruit 5 kg straight-bar load cell. - OWNED — 100 mm and 200 mm SparkFun Qwiic flexible cables. - OWNED — 1 SparkFun KX134 three-axis accelerometer breakout. - OWNED — 1 SparkFun BME280 environmental sensor. The load cells are bench inventory, not a wrist force sensor and not part of current drawing control. ### Contact, display, light, and sound electronics - RECEIPT TO VERIFY — 2 Waveshare Pico-ResTouch-LCD-2.8 units ordered; at least one is delivered, assembled, bench-tested, and in TG2. Active area 57.6 x 43.2 mm; 320 x 240 IPS display with XPT2046 resistive touch. - IN SERVICE — 1 BUSY Bar dual-screen public status display using stock firmware and the local HTTP API. - OWNED — 6 wired mechanical limit switches for non-safety experiments. - OWNED — 3 KY-003 Hall-effect modules. - OWNED — 3 IP68 reed sensors. - OWNED — 2 white 0.91-inch 128 x 32 I2C OLED modules. - OWNED — 1 eight-pixel cool-white RGBW NeoPixel stick. - OWNED — 1 eight-pixel natural-white RGBW NeoPixel stick. - OWNED — 1 passive buzzer module. - OWNED — 2 piezo sounders, 24 mm / 1.5–30 V / nominal 3 kHz. ### Passive component stock Metal-film axial resistors, 1/4 W, +/-1%: - 10 x 220 ohm; 10 x 330 ohm; 10 x 470 ohm; - 10 x 1.0 kohm; 10 x 2.2 kohm; 10 x 4.7 kohm; - 20 x 10 kohm; 10 x 47 kohm; 10 x 100 kohm; 10 x 1 Mohm. Radial 105 C electrolytic capacitors: - 4 x 10 uF / 50 V; - 4 x 47 uF / 25 V; - 4 x 100 uF / 25 V; - 4 x 470 uF / 25 V; - 4 x 1000 uF / 25 V. ### Soldering, wiring, and electrical bench - RECEIPT TO VERIFY — 2 Pico header sets and 2 official Raspberry Pi Micro USB cables ordered; at least one of each is installed/in use. - OWNED — Fanttik T1 Max C210-style precision soldering set, four tips. - OWNED — 50 g lead-free Sn99 Ag0.3 Cu0.7 solder, 0.8 mm. - OWNED — Stannol X32-10i 10 ml flux pen. - OWNED — Solder-Ex copper desoldering braid, 1.6 m x 2.5 mm. - OWNED — 830-point and 400-point breadboards, 65 flexible jumpers, 140 short jumpers, tweezers. - OWNED — 22 AWG silicone wire, eight colours x 5 m. - OWNED — Preciva ferrule crimper with 1,200 ferrules. - OWNED — iFixit three-tweezer set. - OWNED — UNI-T UT139C True-RMS 6,000-count multimeter. ### Human control and workstation Work Louder order 26924, delivered 3 July: - IN SERVICE — Creator Micro 2, Pro wireless, silent switches. - IN SERVICE — wrk. MX Icon accessory set. - IN SERVICE — orange wrk. Dial 2. - OWNED — one dozen spare wrk. MX Pure switches. Other peripherals: - OWNED — Apple USB-C to Lightning cable, 1 m. - OWNED — UGREEN MFi USB-C to Lightning cable, 2 m. - OWNED — UGREEN Thunderbolt 5 / USB-C cable, 1 m, 240 W. - OWNED — 2 North Bayou monitor arms, VESA 75/100, up to 9 kg each. - OWNED — LogiLink clamp mount for 4.7–15 inch devices. - OWNED — PUTORSEN VESA laptop bracket for 12–18 inch notebooks. ### Measuring and general tools - OWNED — STEINLE 1321 digital caliper, 150 mm. - OWNED — Muaket fine scale, 50 g / 0.001 g. - OWNED — HOTO 4 V rotary tool, five speeds, 5,000–25,000 rpm. - OWNED — HOTO PixelDrive screwdriver, 0.5–6 N m, 30 bits. - OWNED — HOTO mini bicycle pump; general utility, not robot pneumatics. - OWNED — WD-40 Specialist PTFE Dry Lubricant, 400 ml. ### Cable management, cleaning, and bench care - OWNED — 10 m spiral cable wrap. - OWNED — 50 self-adhesive cable holders. - OWNED — 100 black 2.5 x 100 mm cable ties and a pack of black 3.6 x 300 mm ties. - OWNED — 750 ml 99.9% isopropanol; flammable. - OWNED — Kim-Wipes, ZEISS wipes/cloths, 8 ultra-fine microfibres, and 24 general microfibre wipes. - OWNED — silica-gel sachets with humidity indicators. - OWNED — 12 AA batteries. - OWNED — 10 cotton tea towels. - OWNED — 4 rolls 48 mm painter's masking tape. - OWNED — 4 rolls three-ply kitchen paper. ### Painting-adjacent robot-test stock - OWNED — 10 double-primed 30 x 40 cm cotton canvas boards. - OWNED — 8 short-handled nylon flat brushes. - OWNED — lightweight tarpaulins, advertised 160 m2 total. - OWNED — 10 Edding 3000 markers, assorted, 1.5–3 mm round nib. - OWNED — 4 PILOT G2-7 gel pens. - OWNED — 2 Winsor & Newton 1.0 mm pigment fineliners. - OWNED — A4 and A3 200 gsm spiral sketchbooks, 40 sheets each. - OWNED — 3 rolls blue painter's tape, 24 mm x 50 m. - OWNED — 1 roll black masking tape, 50 mm x 30 m. - OWNED — 30 STABILO point 88 fineliners, assorted including neon colours. - OWNED — 10 rOtring Liner fineliners, assorted, 0.4 mm. ### Ordered items whose receipt was not reconciled The canonical inventory still listed the following July orders without final receipt confirmation. Their estimated delivery dates have passed; treat them as unresolved, not as available stock: - 5 uni-ball Signo UMN-207 black rollerballs; - second 60-magnet 5/8/10 x 3 mm set; - 4 rOtring Tikky Graphic black fineliners; - 2 x 50 g liquid cyanoacrylate with tips/brush; - 200 ml cyanoacrylate activator; - 12 Sakura Gelly Roll pens; - 2 COPIC Multiliner five-width sets. ### Explicitly not owned or not yet implemented - Returned Mean Well RSP-750-24. - Cancelled commercial UFACTORY vacuum gripper, camera stand, and suction cups. - Commercial automatic tool changer or robot gripper. PB29 instead has a home-built supervised two-station system. - Wrist force/torque sensor or active force-control hardware. - Production paint wells, rinse station, wipe station, brush-loading system, or automated historical-pigment signature. - Unattended station-attachment/occupancy sensors. ## Painting and material inventory The exact tube-by-tube, pigment-by-pigment studio inventory is maintained at: https://dhvanil.com/painting-supplies.txt Material anchors relevant to PB29: - professional acrylics including Schmincke PRIMAcryl and Golden Heavy Body; - PB29 ultramarine as dry pigment and prepared colour; - Royal Talens Cobra water-mixable oils and mediums; - Kremer historical pigments and a glass mulling plate; - white, clear, and black grounds plus specialist primers; - acrylic retarders, binder, gels, and finishing materials; - flats, rounds, filberts, fans, hake, sword liner, dry-brush, stencil, utility, and micro brushes; - archival canvas, boards, papers, stretcher systems, varnishes, and studio protection/cleaning stock. Acrylic remains the more plausible first robot paint medium: fast feedback, water cleanup, and fewer contamination/drying complications than oil. It is still mechanically hard. Brush compliance, loading, wetness, rinsing, wiping, surface interaction, drying, cleanup, and paint-state tracking all require explicit choreography. ## Public trail — snapshot, not a growth strategy The detailed, dated archive now lives at: https://dhvanil.com/pb29-marketing.txt The complete captured comment and reply archive is: https://dhvanil.com/pb29-marketing-comments.txt It records the exact posts, links, copy, platform counters, response coverage, and physical-run provenance without turning the art into a content calendar. Its current curated coverage is seven primary posts across X `@dhvanil`, Reddit `u/dhvanil`, and TikTok `@bot.pb29`. At the 13 August 2026 public snapshot, the new TikTok account had two posts: Fray 90210 at 630 views and 3 likes, and Tidal Rings 7447 at 714 views and 21 likes. The 4 August X ginkgo post showed 4,193 public views and 48 likes. The 13 August Reddit owner-analytics snapshot showed 180K views, 1.2K displayed upvotes, 157 comments, and 325 shares. The public response archive contains 153 distinct Reddit comment IDs and states the four-comment platform gap explicitly. The repeated public questions are useful: what did Nil contribute, did Codex "make" the drawing, and why use a robot arm rather than a plotter? The honest answer separates artistic direction, source choice, system design, calibration authority, generated geometry, deterministic execution, and physical mark. The arm's real justification is not superiority at ordinary plotting; it is the future range of angles, brushes, pressure, paint, impasto, tool change, and visible embodied process. Metrics above are time-sensitive and will age. Use the separate marketing file for observation dates and source distinctions. The art remains the project; the selling and audience record are how it travels. ## Milestone log 2026-05 — PB29 is clarified as a painting practice first. The lonely-robot series and "painting through the singularity" direction are recorded. 2026-06 — The physical workshop comes together around the xArm 7, Prusa CORE One+, overhead and wrist vision, calibration targets, and early pen mounts. 2026-06-29 — Early contact attempts prove that accepted SDK Cartesian commands can still produce physically unsafe near-table paths. Segmented high-clearance motion becomes an invariant. 2026-06-30 to 2026-07-03 — Paper evidence is separated from executable area; camera calibration, support plane, wrist inspection, local IK/FK, branch policy, and saved-trace execution are rebuilt. 2026-07-04 to 2026-07-09 — Printed contact mechanics, repeatability work, compliant flexures, nib detection, Work Louder control, and canonical tool TCP move the rig from loose experiments toward an operating system. 2026-07-10 — Quiet Attractor completes end to end. 2026-07-12 — The first public context packet and evidence set are published. 2026-07-13 to 2026-07-14 — Magnetic 300 x 300 mm paper, Art Lab, faster SVG execution, queue revocation, tool-dock concepts, Phyllotaxis, and Moire Circles come online. 2026-07-15 to 2026-07-16 — Pull-follow Meander, cone-derived tool calibration, fixed-vs-pull drawing modes, and the directional pen study establish the limits of yaw-under-contact. 2026-07-17 — Three repeatable Superformula Bloom sheets and the first full face study complete. Portraitautomat and the BNMW application become concrete. 2026-07-18 — Two 26-minute portrait edits complete. The BNMW application is submitted under the name Nil. 2026-07-19 to 2026-07-25 — Art Lab expands; the print workflow becomes regression-driven; PenPod, rack, capture-D, capture-tower, Wing-B V3, and R3 receiver studies are designed, printed, rejected, repaired, and logged. 2026-07-27 — Two supervised capture-tower stations and fixed-attitude station routes are validated, including the uninterrupted six-swap sequence. Pen B drawing and station handoff are calibrated. 2026-07-28 — Pen A is calibrated relative to Pen B; concentric-square and crosshair studies expose frame/sign errors and local two-pen registration. 2026-07-29 to 2026-08-01 — Camera framing is frozen and recalibrated; the 4K U3 camera becomes a controlled diagnostic view; two-camera crosshair evidence is captured; TouchGlass coupons are qualified. 2026-08-02 — TouchGlass electronics, firmware, pressure proxy, fixed-plane camera calibration, dual-camera tool workflow, and the final TG2 mechanical direction come together. 2026-08-03 — TG2 station and paper reference are calibrated; Pen C and Pen D are measured; Pen C completes a full-sheet boundary exercise; Pen D passes a paper smoke cross and completes Ginkgo / one pen 421160. Art Lab reaches 79 public systems; REMAINDER, packet explorations, photograph-to-line studies, Ginkgo, and the BUSY Bar are recorded. 2026-08-04 — The Reddit Ginkgo run reaches a large audience; the project-local marketing archive is created; this context packet is rebuilt around the full art-and-robot project rather than the 12 July A4 rig. ## Open questions - How do the hand-painted lonely-robot series and Portraitautomat relate: two practices under one name, or two views of the same rupture? - Is observability the subject of the work, a material/compositional device, or an ethical engineering condition for public machine-making? - What does the apprentice metaphor genuinely describe — fallibility, rehearsal, dependence, learning, authorship — and where does it become cute anthropomorphism? - Which marks feel native to this seven-axis arm and compliant tool rather than like a slower imitation of an ordinary plotter? - What portrait abstraction reads as a particular person in roughly five minutes without becoming generic AI line art? - What exact local/network path satisfies the submitted photo-retention and deletion promise, including failures and retries? - How should the hand-mulled pigment signature work physically and conceptually now that the Tyrian-purple edition conceit is rejected? - Can two-tool registration disagreement become the image rather than noise? - Which REMAINDER source/event deserves the first two-colour physical run? - When does brush-loaded acrylic become the next necessary artistic question? - Will BNMW accept the work, and which parts are worth building even if it does not? ## Safety and authority for AI agents - This document gives context, not permission to operate hardware. - Read the current private repository safety files before proposing or executing live motion. - Run the read-only robot state check before any motion. - Treat tool, nib, receiver, flexure, paper, magnet, camera, support, station, payload, and controller changes as scoped calibration events. - Never use a collision stop as a measurement strategy. - Never treat SDK return code 0 as physical proof. - Never treat a pretty overlay as execution authority. - Never bypass branch checks, workspace limits, magnet exclusions, active-tool checks, frozen-session validation, queue revocation, FK sampling, or high-clearance travel because a path looks simple. - Do not let an LLM/VLM emit raw joint commands. - Do not infer a currently attached tool from this public packet. - Do not make station motion unattended merely because supervised cycling worked. - After uncertainty, reduce scope: one state check, one stopped boundary, one physical fact, one trace, fresh evidence. Current private repository paths that override this summary include: - AGENTS.md - docs/contact-calibration.md - docs/tool-change-station.md - docs/touchglass-calibration.md - docs/work-louder-quickstart.md - config/active_tool_profile.json - config/current_session.json - logs/events.jsonl - scripts/01_state.py ## How to work with Nil - Teach from first principles. Explain the physical mechanism, not only the recommendation. - Show the reasoning and tradeoffs. - Push back clearly when the difficult 20 percent is the real frontier. - Treat exploratory mulling as legitimate work; do not force premature closure. - Keep code and systems inspectable: clear over clever, explicit over magical. - Preserve the boundary between high-level artistic direction and low-level grounded execution. - For quick questions, answer quickly. For kinematics, calibration, material, or hardware tradeoffs, build the intuition carefully. - Nil is both an artist and a systems thinker. Material, visual, mechanical, and software reasoning belong in the same conversation. - Selling and public reach matter, but they are plumbing around the art. Do not flatten the practice into funnel or content optimization. ## Common agent failure modes - Calling PB29 "an AI plotter" and missing the painting practice, brush future, and observability layer. - Describing PB29 only as robotics and erasing Nil's hand-painted practice. - Inflating Portraitautomat's hidden-process argument into a total philosophy Nil has not claimed. - Claiming the five-minute portrait, automatic deletion, brush painting, or unattended tool change as already demonstrated. - Conflating the design-only canonical Ginkgo plate with the physically drawn randomized 421160 variant. - Blurring Nil, Fable, Codex, Art Lab, deterministic executor, and xArm authorship into one vague "AI made it" claim. - Jumping to an autonomous planner before physical primitives are trustworthy. - Treating the TouchGlass pressure proxy as force. - Collapsing camera, support, paper, tool, contact, drag, and session into one calibration. - Assuming calibration survives a physical change because the JSON still parses. - Optimizing procedural complexity or path count instead of the physical image. - Recommending force sensing before using passive compliance and current contact evidence well. - Repeating stale product specs, prices, public metrics, tool state, or network details without verification. ## Useful public links - PB29 human page: https://dhvanil.com/pb29 - This full context packet: https://dhvanil.com/pb29.txt - Exact painting inventory: https://dhvanil.com/painting-supplies.txt The private source repository, live addresses, credentials, complete raw logs, and motion authority are intentionally not public links. The current-state, experiment, inventory, and milestone sections above are the public working summary. End of PB29 public context packet.