← All work

Edtech · 3D + AR · 2025

Lattice

Proteins you can hold in your hand.

A 3D viewer built from real Protein Data Bank files, an AR flow from study card to desk in three taps, and quizzes you answer by pointing.

  • Product
  • UI/UX
  • Frontend
  • QA
Role
Concept project · design + Three.js prototype
Year
2025
Disciplines
Product · UI/UX · Frontend · QA
lattice.app

01 The problem

Biology students memorise shapes they’ve never seen. Diagrams are flat, and classroom 3D models are rare and shared.

02 Key decisions

01

Every model is real data

Structures come straight from the Protein Data Bank: 4HHB for hemoglobin, 1BNA for DNA.

02

Three taps to the desk

Card → View in AR → place. Surface detection starts while the card is still open, so placing feels instant.

03

Quizzes you answer by pointing

“Aim at an α chain.” A reticle locks on, and misses become tomorrow’s five-minute review.

03 Built in code

viewer/useStructure.ts
 1export function useStructure(pdbId: string) {
 2  const atoms = usePdb(pdbId)                // files.rcsb.org
 3  const mesh = useMemo(() => instancedSpheres(atoms, {
 4    radius: vdw, color: byChain(palette.colourSafe),
 5  }), [atoms])
 6  useLod(mesh, { far: 0.35, near: 1 })         // 60 fps on phones
 7  return mesh
 8}

04 Then I tried to break it

CaseOlder iPhoneNew iPhoneiPadAndroid
Place on a glossy desk!✓✓!
Low evening light✓✓✓✕
4,556-atom model at 60 fps✓✓✓!
Colour-blind palettes✓✓✓✓
  • AR session survives an incoming call
  • Chain colours work for deuteranopia
  • Reticle visible on white desks
  • Large models show load progress

✦ What I’d measure

Quiz scores vs 2Dsame lesson, A/B classes
Placed a model in ARin the first lesson
Taps to ARmust stay at three

Concept project. These are the success measures I designed for, not reported results.

→ What I’d do next

Let teachers build their own “take it apart” moments for any structure.

Next case studyVitalHealth data, in one calm sentence.
→