Skip to content
david shin Selected work

Selected workInteractive 3D / Shared worlds / 2026

FINN Workshop

A little shared world for a curious companion, with a 3D workshop, garden care, and a notebook of small discoveries.

FINN's illustrated landing page with a waving green companion beside flowers and plants
FINN WorkshopInterface overview

FINN Workshop is a personal project about making a small digital character feel present. Visitors enter a shared room where FINN sketches, tends plants, rests, and notices the objects around him. The challenge was to give those activities continuity while keeping the experience calm and approachable.

My contribution

I shaped the experience and built the connection between the illustrated landing page, the Three.js workshop, and the server-owned room state. My work spans interface design, character integration, procedural motion, and the garden and notebook systems.

Decision: introduce the world before loading it

The landing page and workshop are separate entry points. Someone can meet FINN and understand the project without loading Three.js, the character model, or a room session. Entering the workshop is a deliberate next step.

That separation lets the introduction stay lightweight while the interactive room carries the heavier rendering and synchronization work. The landing page also provides a useful experience when a visitor never enters the 3D scene.

Decision: give the room one clock

A Node backend owns the activity clock and sends room updates through server-sent events. Visitors observe the same routine rather than unrelated browser animations. File and PostgreSQL storage support persistent room state.

In the local implementation, plant care can take priority over activity votes. The notebook records authored accounts of observations and completed sketches. Those connections make the garden, character, and notebook parts of one experience.

Decision: express attention through movement

Procedural head turns aim toward scene objects; drawing and gardening poses connect FINN to his surroundings. Reduced-motion preferences use still poses, hidden tabs suspend rendering, and an unavailable 3D scene has a portrait fallback.

The tradeoff is deliberate: an authored routine gives me control over pacing and character behavior, with less unpredictability than a live model-driven agent.

Outcome and current scope

The result is a public introduction to FINN and a shared-workshop prototype. The local project demonstrates persistent care and a coordinated routine; the public Railway pilot may lag those additions. The behavior described here is scripted, and does not imply a live AI personality or a payment system.

The next useful validation is whether new visitors understand what they can influence without instructions, and whether FINN’s responses make that influence clear.

Inside the product

Built into the details.

  1. A lightweight illustrated landing page keeps the 3D workshop in a separate entry point.

  2. A shared room synchronizes FINN's routine and visitor interactions through server-sent events.

  3. A persistent garden and notebook record plant care, observations, and completed sketches.

  4. A custom Blender character combines eye expressions with procedural head movement and object attention.

  5. Reduced-motion support, keyboard-accessible controls, and a portrait fallback keep the experience approachable.

Next project

EmbedProof

SaaS / Social proof