Before Everything: Drawing a Fish into a Shared Sea
This project really began with a small website that I couldn’t stop refreshing. On drawafish.com you draw a fish in the browser. Only when an AI classifier decides that your sketch looks enough like a fish — when the “fish probability” exceeds about 60% — will it be accepted. Once accepted, your fish is released into an online “ocean” together with drawings from strangers all over the world.
I love the mix of generosity and cruelty in that system. A very private, clumsy line drawing suddenly becomes part of a huge crowd. If the classifier is unsure, your fish is simply rejected and never enters the sea. That sense of threshold — of a gesture becoming data, or failing to become data — became the emotional starting point for my final project.
I began to wonder: could a very physical act — like casting a fishing rod — also leave traces in a parallel, invisible sea of data? The rest of this page is basically a diary of how I tried to answer that question.
Part I — Art / Conceptual Precedents: Actions and Virtual Worlds
My first step was to search for artists who already connect bodily gestures with remote or invisible systems. I didn’t want my project to become only a gadget; I wanted it to sit in a lineage of works where motion, light, and data are entangled.
I kept coming back to Atelier Lozano-Hemmer. He is a media artist working at the intersection of architecture and performance: using robotic lights, digital fountains, computer surveillance, media walls, and telecommunication networks to create platforms for public participation. His light works are inspired by phantasmagoria, carnival, and automata; he calls them “anti-monuments” for alien agency.
One piece that stayed with me is Spectral Subjects (2024). It describes itself as a thermal observatory that displays a constantly updating map of the room’s temperature. Using thermographic cameras, it detects heat and cold from the building’s HVAC, from visitors’ bodies, and from inanimate objects. Live heat signatures are mixed with recently past ones, producing “thermal echoes” that fade but never disappear at once. The result is an evolving portrait of spectral traces that make the atmosphere tangible. I like the idea that simply standing in a space quietly leaves a visible scar of heat.
Another reference is The Manual Input Workstation (2004–2006) by Golan Levin and Zachary Lieberman. Visitors interact on a hybrid setup of an analog overhead projector, a digital video projector, and custom software. A computer vision system watches people’s hands as they pass across the glass top of the overhead projector. In response, the software generates tightly coupled graphics and sound, which are projected back on top of the analog shadows. The result is a kind of augmented-reality shadow play: ghostly, precise, and strangely intimate.
I also looked at teamLab’s Graffiti Nature and Beating Earth . In this work, visitors color in creatures on paper; their drawings are scanned and appear around them as animated animals. The ecosystem is shared and dynamic: salamanders eat snakes, snakes eat lizards, lizards eat frogs, frogs eat butterflies. Creatures multiply if they eat enough, and disappear if they are eaten or neglected. Flowers bloom when people stand still, but scatter when people walk over them.
What I take from these precedents is that interaction should leave a memory. A gesture is not just a trigger; it becomes a trace that persists and evolves, whether as heat, as shadow, or as a digital animal roaming through an environment. This is exactly the quality I want for the fish in my project’s parallel sea.
Part II — HCI, Toys, and Game Precedents
After the art references, I shifted to HCI and toys. I wanted to study fishing as a game mechanic: how designers turn “cast, wait, feel, reel” into something that still feels surprisingly real.
One key reference is the Nintendo Labo fishing rod. A review on LadiesGamers helped me understand how they map motion to feedback. The cardboard rod and spinning reel, combined with UI hints and rumble, create a tight loop of action and response: casting, line tension, the tiny signals of a bite. It’s a very elegant physical–digital mapping.
The image above shows one of the limitations that I wanted to avoid. In Labo, the screen and the rod are attached to the same cardboard base. You are always a little afraid of hitting the Switch or pulling the cable; it becomes difficult to perform a full, theatrical cast. In my design, separating the rod and the dock — and connecting them wirelessly — became a crucial goal so that casting could be a free, sweeping motion in space.
I also studied Sega’s arcade game Get Bass . The game asks players to cast into a lake, hook a fish within a time limit, and then manage line tension with the reel. A range meter shows how much pressure you are applying; if you pull too hard, the line breaks and the fish escapes. Each run gives you a limited number of chances, and final scores are calculated by number and weight of fish.
What I learned from Labo and Get Bass is that fishing gameplay is essentially a layered state machine: cast, sink, bite, fight, land. Each state has its own sound, vibration, and timing. For my project I adopted the logic “bite → line tension → reel rhythm” as the backbone of the interaction.
Finally, I looked at Tamagotchi-style virtual pets and idle/collection games. The main idea I borrowed is the “encyclopedia” or index of creatures. Instead of a digital collection, my project will produce physical thermal tickets — one per catch — that together form a tangible fish index.
Part III — Starting My Own Project
With these references in mind, I returned to my own project. The goal: build an installation where a physical electronic fishing rod casts into an invisible “parallel ocean” of data. When a fish bites, a ghostly image appears inside a small holographic dock, and a thermal printer spits out a ticket as proof of the catch.
Dock v1 — A Compact Holographic Enclosure
I began by revisiting my Week 1 design models and cleaning up the geometry. Before involving AI, I wanted to see what the dock and rod looked like as simple massing studies in Rhino — just volumes, no details yet.
Using these coarse models as a reference, I wrote prompt-based descriptions and generated cleaner concept sketches with an image model. This was less about style, and more about quickly testing different proportions and optical arrangements for the hologram.
Prompt: dock v1 (click to expand)
Visualize a compact holographic dock enclosure: beveled square base with removable clear acrylic dome, printer slot front and center, rear cutout for USB-C power. The top surface has a shallow circular recess matching the dome footprint; inside, a simple four-facet pyramid of clear plates above a hidden display. Clean industrial concept sketch, orthographic + slight perspective, pure white background, crisp line art, gentle ambient occlusion, no branding.
The AI’s first interpretation clearly assumed a pyramid-style hologram. It looked great, but came with high demands: the content would need to be prepared as four synchronized views, and the optical assembly would be finicky. For a student project, this felt too heavy. I started searching for a simpler alternative.
Pepper’s Ghost and Dock v2
That search led me to the classic Pepper’s Ghost illusion. In a Pepper’s Ghost setup, a real or recorded image is reflected in a transparent screen at around 45°. To the viewer, a virtual image appears in space, apparently hovering out of nowhere. It’s an old trick, but still very effective.
I dug into DIY instructions and explanations, including this article on spectral illusions , which breaks down the geometry and perception behind the illusion. A video from the same context shows how different plate angles change brightness and depth.
I decided to switch from the pyramid to a single clear plate. Instead of a multi-view 3D object, the fish could be a glowing apparition hovering above a hidden display.
Original video: Pepper’s Ghost Effect
Prompt: dock v2 (click to expand)
Visualize a compact holographic dock enclosure: beveled square base with a tall clear acrylic dome featuring a true hemispherical cap (distinct rounded top), printer slot front-center, and a rear cutout for USB-C power. The top surface has a shallow circular recess matching the dome footprint. Inside the dome, place a single ultra-thin clear elliptical plate, oriented at a precise 45-degree tilt (front-top edge toward the viewer, rear-bottom edge toward the base), tightly wedged at the center above a hidden display. Clean industrial concept sketch, orthographic + slight perspective, pure white background, crisp line art, gentle ambient occlusion, no branding. Negative cues: cylindrical flat top, vertical plate, thick plate, bulbous distortions, heavy reflections, clutter, logos, text.
Fishing Rod v1 & v2
After the dock, I turned back to the fishing rod. I wanted it to learn from old rods with oversized reels, but still feel modern and clean — something between a toy and an instrument.
Prompt: rod v1 (click to expand)
Visualize an electronic fishing rod: cylindrical matte handle, a round side-mounted reel housing with a knurled rotary encoder knob, and a slender rod shaft. A tiny vibration motor is embedded in the grip (hinted by a subtle access seam). The reel face has one minimal push button and a tiny status LED. A thin coiled cord exits the reel base toward a dock (out of frame). Clean, modern design sketch, pure white background, thin black linework, soft shadow, three-quarter view, no logos.
The first design satisfied most functional requirements, but the body felt a little stiff and not quite graceful. It looked like a placeholder rather than a finished object.
Prompt: rod v2 (click to expand)
Visualize a handheld sensor fishing rod: ergonomic tube grip, shallow disc reel with low-profile encoder knob and center cap, short rear stub for balance. Small hatch line indicates IMU position inside the reel body; discreet cable grommet at the base. One minimalist On/Off icon next to a micro button. Clean industrial concept sketch, pure white background, crisp outlines, subtle shading, no text.
The second version matches my taste better: the reel becomes a shallow disc, the grip is more ergonomic, and small seams and details suggest where the electronics live. One open question is whether to keep a long front rod or cut it short. A short stub is safer for the lab; a longer rod is more dramatic for casting. For now I am keeping both options in the CAD and will decide after more testing.
System Diagram and Internal Layouts
With the forms roughly settled, I forced myself to draw the system diagram: two devices — rod and dock — talking to each other through sensors, microcontrollers, and serial links. I laid out which signals come from the IMU, how the rotary encoder reports reel speed, how the vibration motor is driven, and how the dock coordinates the screen and printer.
These diagrams may look dry, but they became my map. Whenever I got lost in surface details, I could return here and ask practical questions: where does this wire go? what state is this LED reflecting? what happens if the printer fails?
Ordering Components
On November 9 I finally froze the bill of materials and placed all major orders: microcontrollers, MPU6050 IMU, EC11 rotary encoder, coin vibration motor, ST7789 screen, and the thermal printer. I double-checked voltage and current (3.3 V for logic, 5 V / high current for the printer), and confirmed with Jen which parts could be found in the shop. As soon as the packages arrive, fabrication can begin in earnest.
Project Timeline
To keep myself on track, I wrote a week-by-week schedule. It’s ambitious, but it gives me a way to measure drift and decide consciously what to simplify.
| Week # | Dates | Task (General) | Task (Sub-divisions) |
|---|---|---|---|
| Week 1 | Nov 18 – 24 | ELECTRONICS + MIN LOOP |
• Inventory all parts; power-spec check (IMU 3.3 V / printer 5 V 3 A). • Breadboard printer (ESC/POS “Hello” + 48×48 bitmap). • Bring up ST7789 screen (splash + FPS test). • Rod firmware: IMU cast detection (window/threshold) + encoder read, haptics driver (patterns). • Define UART protocol Rod → Dock (JSON or short frames), wire TRRS harness. • Demo “Cast → Bite → Reel → Result” on desk with serial logs. |
| Week 2 | Nov 25 – Dec 1 | MECHANICAL + INTERACTION |
• CAD/laser/CNC: dock base with printer slot + rear USB-C; top recess for dome. • Fabricate 45° ultra-thin elliptical plate mount; test reflectivity/position. • Build rod: cylindrical grip, large rotating reel disk + small rim handle, cable grommet. • State machine v1 on dock (IDLE / CAST / FISHING / BITE / REEL / RESULT / PRINT). • Fish generator v1 (≥12 species + rarity); ticket template v1. • Quick user walk-through; shoot 15–20 s clip. |
| Week 3 | Dec 2 – 8 | INTEGRATION + DURABILITY |
• Finalize wiring looms, strain relief, connectors; add fuse/TVS on printer 5 V. • Assemble dock + dome; secure plate; long-run test 10 consecutive prints. • Tuning: reel speed window (1.6–3.0 rps), bite/escape haptics, UI feedback. • Ticket templates v2/v3; behavior labels (patient / greedy / steady). • 3–5 person usability test: clarity, noise, readability; iterate. • Bug list burn-down (serial drops, paper jams, timeouts). |
| Week 4 | Dec 9 – 15 | POLISH + DOCS |
• Visual polish: water animation, success/fail cues, rarity balance. • Robustness: serial retry, print fail-safe, auto-return to IDLE. • Website final: diagrams, BOM, wiring tables, code repo, assembly photos. • One-page Quick Start + maintenance notes (paper change, resets). • Full demo rehearsal (60–90 s) + Q&A checklist. |
| Extra Days | Dec 16 – 17 | DEBUGGING + PRESENTATION |
• Final burn-in; replace any weak cables; prepare spare rolls/power. • Shoot media (photos/video), export diagrams. • Pack show kit: tools, backup parts, labels. |
Milestone criteria.
End of Week 1: desk-top loop working (cast → bite → reel → result) with screen and printer.
End of Week 2: assembled rod and dock; one full interaction cycle while standing.
End of Week 3: 10× continuous audience trials without jams or crashes.
End of Week 4: polished visuals, website live, demo script timed under 90 seconds.
Risk notes & fallbacks.
Printer flaky → switch to “screen-only” safe mode during tests; keep spare rolls and cleaner.
Part delays → run with substitute screen/printer; finish shell and content first.
Serial noise → drop to 19,200 bps, use shielded cable, checksum + retry.
Weekly Tracking
Week 1 — Final Project Proposal (ideation & 3D studies)
I sketched the core interaction loop (cast → bite → reel → hologram → print) and turned it into a state diagram. I ran a quick survey of DIY Pepper’s Ghost optics and thermal-printer ESC/POS examples to confirm feasibility. In Rhino I built first massing models: square dock, tall dome, single 45° plate, exploring printer slot placement, dome diameter vs. screen size, and cable routing from rod to dock.
Outcome: a clear design direction and dimensional envelope for both dock and rod, with fabrication constraints written down for later.
Week 3 — Embedded Programming (first solder + bring-up)
This was my first serious embedded week. I soldered headers and buttons, built a small regulator circuit, and practiced safe power-up with a multimeter. I set up the Arduino/PlatformIO toolchain and serial debugging, wrote minimal drivers to read the MPU6050 and send events over UART, and then watched packets scroll across the terminal to check framing and timestamps.
Outcome: a reliable bench loop for sensing and logging, plus confidence in basic soldering and firmware structure.
Week 4 — 3D Scanning & Printing (integrated prototyping)
I focused on prints: testing tolerances for snap-fits, bosses, threaded inserts, and a small living hinge for the reel cap. I printed grip and reel mockups to validate ergonomics and evaluated different wall thicknesses and surface finishes. I also compared materials — PLA, PETG, and wood + acrylic combinations — and assigned each to different parts of the build.
Outcome: established print settings and fastening strategies, and selected candidate materials for the rod grip, reel shell, and dock inserts.
Week 5 — Electronics Design (first KiCad board)
I learned the KiCad workflow from schematic to Gerber. I designed a first custom PCB with multiple header footprints to keep the prototype flexible: breakouts for IMU, encoder, haptics, and buttons. I planned power domains with 3.3 V logic isolated from a 5 V high-current printer rail, and added test pads and polarity protection.
Outcome: manufacturable v0 board files and a reusable template for later rod/dock PCBs.
Week 7 — Computer-Controlled Machining (CNC display plinth)
I modeled and CNC-milled a presentation plinth sized to the dock. It is more sculptural than strictly necessary, but it frames the dock as an object rather than loose hardware. I sanded, sealed, and tested cable pass-throughs and anti-slip feet, checking stability under printer vibration and audience interaction.
Outcome: an exhibition-ready base that improves sightlines and gives the dome a clear stage.
Week 8 — Input Devices (sensing exploration → scope focus)
I prototyped an external PIR sensor on the earlier board to try proximity-based behaviors: brightening the water when someone approached, or letting the fish fade when they left. After a review with Anthony, I decided to narrow the scope: the final project should focus on rod gestures and dock feedback. Complex ambient sensing will be saved for a later version.
Outcome: documented PIR experiments and clarified the MVP around a clean, readable interaction loop.
Week 9 — Output Devices (screen + playful PCB)
I redesigned the dock PCB specifically for the final, including a playful fish-shaped outline. Underneath the outline, the board stays practical with footprints for a future battery and extra sensors. I brought up the ST7789 color SPI display and implemented a simple UI that maps buttons to different visual states (water, bite flash, success). I also verified that the printer and screen can share the microcontroller without timing conflicts, using separate UART/SPI and non-blocking loops.
Outcome: the “screen lights up and responds to buttons” milestone, and a validated end-to-end output path.
Other Progress — Hologram Content
For the hologram itself, I decided not to use realistic textures. Instead, I am modeling fish in 3D and rendering them as point clouds. They appear as shimmering constellations rather than solid objects, which fits the idea that these are “data fish”: not real animals, but clusters of sampled points from somewhere else.
The clip below shows an early experiment. It is still work in progress, but already hints at a fragile, flickering presence inside the dome.
Reflection & Next Steps
These weeks have moved the project from a loose idea to a functioning set of subsystems: sensing in the rod, output in the dock, a physical form, and a clear exhibition script. Everything is still fragile, but the pieces now connect.
The immediate next steps are integration (rod ↔ dock UART, haptic tuning), mechanical refinement (the large rotating reel with a small rim handle, the 45° plate mount), and content polish (ticket templates, fish taxonomy, behavior labels). With materials already ordered and diagrams complete, the project feels on track for a stable, explainable final demo: you cast into an invisible sea, a ghostly fish appears in the dome, and a small printed ticket lands in your hand as evidence.
Download the Rhino model: model.3dm