Skip to content

Read the portfolio, not the reel

Your search, knit into cloth. Below, a live scene you can break.

A three js developer portfolio is only proof if it runs live.

You're looking at a three js developer portfolio to answer one question: is this real, or is it a reel? The fastest tell is whether the work runs in your browser right now. A scene you can grab, spin, and stall tells the truth about frame rate. A looping video hides it.

This page is a reading guide, not a sales pitch. Below is a sequence for what to click, a table of green flags and red flags, and the one test that separates a demo from a production system: how it behaves on a mid-range phone.

I'm David Weaver, and I build these scenes solo — the interactive loom on this site's homepage is mine, and you can pull it apart. Start with the mini scene below. It mounts only when you ask it to, which is itself one of the tells you should be checking for elsewhere.

01

Pull apart a live scene (it mounts on tap)

Three.js snippet playground

Static poster first. WebGL mounts only when you ask — the same discipline that keeps heroes green on Core Web Vitals. Snippets are illustrative, not a full IDE.

Snippet

// R3F — spinning box (illustrative)
<mesh rotation={[t, t * 0.4, 0]}>
  <boxGeometry />
  <meshStandardMaterial color="#ff6b4a" />
</mesh>

02

Live and interactive, or a video reel?

A video of a WebGL scene proves someone can render one frame. It says nothing about the forty frames that should follow every second while you interact. When a portfolio ships video instead of the running scene, ask why. Sometimes it's bandwidth. Often the live build was too heavy to leave on the page.

So the first move is trivial: try to interact. Drag it. Scroll into it. Tap it. If nothing responds, you're watching a movie of the work, not the work. That is not an automatic disqualifier — but it moves the burden of proof onto a call, where you can ask them to screen-share the running build.

03

What to click, and what it tells you

Open the portfolio on your own device and go in this order:

  • The hero scene

    Grab it and move. Instant response means it is live. A frozen loop means it is video, or it stalled.

  • A second project

    One live scene can be a fluke or a bought template. Two or three, all interactive, means the skill is theirs.

  • The load moment

    Reload and watch what happens before the 3D appears. Readable text first, then the scene, is right. A blank canvas that hangs is a Core Web Vitals problem you would inherit.

  • The page source

    View source for a second. Real headings and copy in the HTML — not an empty div waiting on JavaScript — is the honesty signal search engines read too.

  • The contact path

    Send a real message. Who replies, and how fast, is part of the portfolio. On a solo shop it should be the builder.

04

Green flags vs. red flags

What separates a portfolio you can trust from a highlight reel:

SignalGreen flagRed flag
The sceneRuns live, responds the instant you touch itVideo loop, or a “coming soon” placeholder
On your phoneStays smooth, phone stays coolStutters, heats up, drains battery
First paintText loads, then the scene mountsBlank canvas holds the whole page hostage
BreadthSeveral live scenes in one voiceA single demo cloned from a tutorial
Reduced motionRespected — a calm fallback existsMotion forced on everyone, no opt-out

None of these disqualify on their own. A stack of red flags does.

05

The mid-phone frame-rate test

Desktop GPUs forgive lazy work. A three-year-old Android does not. Open the portfolio on a mid-range phone and interact for thirty seconds. If it stays smooth and the phone stays cool, the developer budgeted their draw calls, geometry, and textures. If it stutters or the case gets warm, that same weight lands on your customers — most of whom are on phones, not gaming rigs.

You don't need dev tools for this. Your thumb and the back of the case are enough. Jank you can feel is jank Google can measure, and it is the version of the site most of your visitors will actually meet.

06

What the scene above proves

The mini scene on this page is the standard I'm asking you to hold others to — and me. It mounts only when you tap, so it never taxes first paint. It runs live, so you can feel the frame rate instead of trusting a caption. For more, /work has products you can open and Roblox games you can play right now. Judge the craft in production, not in a pitch PDF.

Proof over promises

Open the work. Judge it live.

Straight answers

Asked often. Answered honestly.

How do I tell if a Three.js portfolio is live or just a video?
Try to interact. Drag the scene, scroll into it, tap it. A live WebGL scene responds instantly; a video loop ignores you. If nothing moves under your finger, you're watching a recording of the work, not the work itself.
The portfolio is video-only — should I walk away?
Not automatically. Bandwidth and privacy are real reasons to record a scene. But video hides frame rate, so move the proof to a call and ask the developer to screen-share the running build on a throttled connection. If they can't, that tells you something.
What frame rate should a Three.js scene hit on a phone?
Aim for a steady 60 fps on a current phone and no worse than a smooth 30 on a mid-range Android from a few years back. Consistency matters more than the number — a steady 30 feels better than a 60 that drops to 20 every time you interact.
What should I click first when judging a portfolio?
The hero scene, then a second project, then reload and watch the load order. Live-and-interactive on more than one scene, with readable HTML that paints before the 3D mounts, is the pattern you want. One lonely demo cloned from a tutorial is not.
How do I check performance without developer tools?
Your thumb and the back of the phone. Interact for thirty seconds; if the motion stutters or the case gets warm, the scene is over budget. Jank you can feel is jank your customers and Google will feel too.
Does a beautiful portfolio mean they can build my commercial site?
Not on its own. Ask who wrote the copy, whether the scene passes Core Web Vitals, and whether anything on the page actually sells. Spectacle that ignores load time and conversion is a showreel, not a business system.

You just judged a live scene instead of a reel. Hold your own project to the same bar — tell me what it should do and who it's for.