Inspiration

Every first vegetable bed has a plot twist: by August, one zucchini has swallowed the basil. The seed packet warned you ("space 24 in."), but with dirt on your hands that number means nothing. I wanted the glasses to turn the number into the plant itself, at real size, in the bed you're looking at.

What it does

Plot Twist is a Lens for SPECS for first-time vegetable gardeners on planting day.

  1. Plant: pinch a seed packet and drag. A ghost seedling and its spacing ring follow your hand; let go and it's in the soil.
  2. Scrub to August: one slider on the bed's rim. Every plant grows to its real August height and footprint.
  3. See the twist: only in August, and only on the plant in trouble, an amber ring and one line appear: "Zucchini covers this by July" or "Tomato shades this at 4 pm". Lettuce in the tomatoes' shade gets a green tick instead, because afternoon shade keeps it from bolting.
  4. Fix it: drag the basil to the sunny end and the ring turns green.
  5. Plant it: one dig spot at a time, with the plant's name and depth, and one big Done button, so your hands stay in the soil.

The sizes are real, from University of Minnesota and University of Maryland Extension, Clemson HGIC and NC State. The shade uses NOAA's solar position equations for a mid-August 4 pm sun at 40°N: 32° high, so a shadow is 1.6 times the plant's height.

Who it's for

Someone planting their first raised bed, kneeling at it with seed packets and muddy hands.

How I built it

  • Planned with the Devpost Learn skill pack. The plan-lens interview wrote devpost/design-brief.md; the conversation is in devpost/planning-session.md.
  • Built by Claude Code with Snap's CLAD plugin, driving Lens Studio 5.23.2 through the Lens Studio MCP. CLAD generated the four plant models, the sounds and the UI Kit controls, and wrote the TypeScript for growth, crowding, shade and planting.
  • Tested with LEAF: one scenario per done criterion, all five passing in the preview, plus a demo-full-run scenario that plays the whole experience at human pace. That run is the uncut part of the video.
  • Iterated with design notes, not code, after trying it in the preview: soil texture and a 30 cm planting grid, first-use hints ("Grab a packet", "Drag to August"), bigger warning text, staked tomatoes, the outdoor preview scene.

How the skill pack helped

It made me pick one moment (the August reveal) instead of two, plan stand-ins for what the preview can't sense (a virtual bed at real size, grabbable seed packets, a fixed sun), and decide when each thing shows. Rings appear only while dragging or in July and August, warnings only in August and one at a time, and the shade is lavender because dark colours vanish on an additive display.

What I learned

  • On glasses the interface should be the thing itself. The plant at real size beats any number on a card.
  • Showing nothing is a feature. In May the bed is just a bed; problems appear only when they're real.
  • Additive displays change colour choices: shade has to be light, not dark.
  • A specific brief is most of the build. CLAD followed numbers I could defend.

What's next

Recognising the real bed's corners and the real packets by camera, using today's date and your latitude for the sun, and more crops.

Built With

  • clad
  • claude-code
  • leaf
  • lens-studio
  • lens-studio-mcp
  • specs
  • spectacles-interaction-kit
  • spectacles-ui-kit
  • typescript
Share this project:

Updates

Submission history