← Back to stories

bunpav ·

Primitive Lab: bunpav's Procedural 3D Asset Studio Is Live in Beta

bunpav shipped Primitive Lab, a browser-based procedural 3D asset studio with deterministic seeds, live material sliders, and one-click GLB export.

10 min readbunpav crewAIGame Dev Tools3D AssetsIndie games

bunpav shipped Primitive Lab on July 19, 2026 — a browser-based procedural 3D asset studio live at /dashboard/studio behind beta sign-in. It's a different animal from the text-to-3D and image-to-3D generation bunpav already runs: instead of sampling a mesh from a diffusion model, Primitive Lab assembles parametric low-poly assets — vehicles, rocks, props, platforms — from geometry sliders and a seed, live in the browser, with correct pivots and one-click GLB export baked in from the start.

If you've spent any time on our text-to-3D or game jam asset pipeline coverage, you already know the standard complaint about generated meshes: great silhouette, wrong pivot, no idea what scale it thinks it is. Primitive Lab exists partly to sidestep that problem entirely for the asset categories it covers, and partly to give web and game jam devs a fast, reproducible base layer that AI generation can graduate from later.

TL;DR — the questions people actually ask

QuestionDirect answer
What is Primitive Lab?bunpav's procedural 3D asset studio, in-browser, at /dashboard/studio — sliders and seeds build the mesh, not a prompt.
Is it AI-generated?No — it's deterministic and parametric. bunpav's separate text-to-3D and image-to-3D tools are the AI-generative side.
Why does the seed matter?Same seed + same parameters always rebuilds the exact same mesh — reproducible, shareable, and diff-able like code.
Are the pivots actually correct?Yes — every asset rests on y=0 with a centered origin and real-world metre dimensions shown live in the viewport.
What can I export?One-click GLB (binary glTF) for three.js, Unity, Unreal, and Blender, plus a copy-paste GLTFLoader snippet.
Is it free?Free during beta for signed-in users. Credit packs still cover bunpav's separate AI 3D generation features.

What is Primitive Lab, exactly?

Primitive Lab is a procedural asset studio that runs entirely in the browser on three.js and React Three Fiber. Rather than typing a prompt and waiting on a generation pipeline, you pick an asset — say, a pickup truck or a boulder — and shape it with geometry sliders: body length and width, tire radius, jaggedness, and other parameters specific to that asset type, plus a variation seed and an overall scale control.

The library at launch spans four categories: vehicles (pickup truck, hatchback, coupe, van), rocks (boulders), props (crates, barrels, street lanterns), and platforms (floating islands, ramps) — with bunpav adding more over time. Every asset supports four live material modes — Toon, Lambert, PBR (roughness/metalness), and Gloss — plus six built-in color palettes and custom primary/secondary/accent hex colors, all updating in real time as you drag a slider.

How is this different from AI text-to-3D or image-to-3D generation?

This is the distinction worth getting right, because "3D generator" gets used loosely and Primitive Lab isn't the same category of tool as bunpav's text-to-3D or image-to-3D features.

Text-to-3D and image-to-3D are generative AI: a diffusion pipeline samples multiple views of an object from a prompt or photo, then a reconstruction network turns those views into a novel mesh. We've covered how that pipeline actually works and how single-photo reconstruction works in depth — the short version is that it's genuinely creative (you can ask for almost anything) but stochastic (the same prompt gives you a different mesh every run).

Primitive Lab is procedural and parametric: the asset shapes are built from code-defined rules — a truck bed is always a truck bed, shaped by the sliders you set — and a given seed plus a given set of parameter values always rebuilds the identical mesh. You trade "ask for anything" for "reproducible instantly, forever, for free." Neither approach replaces the other; they solve different parts of an asset pipeline, which is the whole subject of our companion piece on when procedural assets win and when AI generation wins.

Why does a deterministic seed actually matter?

A "seed" in procedural generation is just the starting number a pseudorandom number generator uses — same seed, same sequence of "random" values, same output, every time. It sounds like a small implementation detail, but it's the property that makes procedural generation usable in a real production pipeline rather than a novelty.

A three.js procedural dungeon generator on GitHub makes the mechanism concrete: it threads a single seeded PRNG stream through every generation stage — room scatter, separation, triangulation, room roles, corridor carving, decoration — so that "any seed rebuilds the exact same dungeon," and different subsystems get independently-derived streams from the same master seed so tweaking one stage doesn't cascade unpredictably into another. Primitive Lab's variation seed works on the same principle, scoped to a single asset instead of a whole level: pin a seed and every slider value, and the exact mesh comes back — useful for version control, for a teammate reproducing your exact asset, and for building asset variety (a boulder field, a fence of similar-but-not-identical crates) from one seed formula instead of a hundred hand-placed unique meshes.

That's also why Primitive Lab ships a "prompt a variation" bar: type a word or phrase and it deterministically maps that text to a seed, a palette, and small parameter nudges — not a generative guess, a repeatable function. Type the same word twice and you get the same variation twice.

Why do pivots and real-world scale matter this much?

Ask anyone who's imported a free asset pack into Unity or Unreal about pivots and you'll get a specific kind of tired sigh. Tripo3D's own breakdown of common 3D spatial issues puts it plainly: "Scale mismatches between software (e.g., DCC to game engine) are a classic pain point," and gets specific about the fix — "For a character, I place it at the feet, on the ground plane, centered on the model. This is crucial for animation and placement." An asset with an off-center or floating pivot doesn't rotate, scale, or snap-to-grid the way you expect, and a mesh with no clear real-world scale breaks physics colliders and camera framing in ways that are miserable to debug blind.

We've written about exactly this failure mode from the AI-generation side — our Unity/Unreal import guide covers unit-scale mismatches (Unity treats 1 unit as 1 meter, Unreal as 1 centimeter) and pivot fixes as standard steps in an AI-mesh import checklist, precisely because generated meshes don't reliably arrive pivot-correct.

Primitive Lab addresses this by construction rather than by cleanup pass: every asset rests on y=0 with a centered origin, dimensions are expressed in real-world metres, and the viewport shows live tri/mesh/material counts so you know exactly what you're about to export before you export it. It's the same "pivot-correct on arrival" property that free-asset libraries like Kenney's CC0 packs are prized for — Primitive Lab just builds the mesh to spec instead of shipping it pre-made.

What's the current trend behind indie devs building open three.js asset libraries?

Primitive Lab is shipping into a moment where the three.js ecosystem itself is unusually active around asset tooling, not just rendering. React Three Fiber — the React renderer for three.js that Primitive Lab is built on — now pulls roughly 900,000 weekly npm downloads against three.js's own roughly 3.5 million, per PkgPulse's February 2026 comparison, and its ecosystem includes Drei's 80-plus helper components alongside hundreds of community tools.

That growth shows up directly in asset tooling. Kenney's CC0-licensed low-poly packs remain the reference point indie devs cite for "no strings attached" 3D assets. Independent developers have also started open-sourcing code-first, parametric three.js libraries rather than static model dumps — three-low-poly on GitHub is built explicitly for "code-first, parametric, performant scene building," generating merged geometry and instanced meshes so a whole low-poly scene stays batch-friendly instead of shipping as hundreds of separate downloaded files. Community showcases back this up too: itch.io's games made with three.js tag and its procedural-generation tag both show a steady stream of browser-native, procedurally-assembled entries, and jam-specific events like PROCJAM and the browser-focused Gamedev.js Jam 2026 exist specifically to push procedural and web-native techniques forward.

The pattern across all of it: indie devs increasingly want asset systems they can inspect, tweak, and regenerate from code or a slider — not just another downloaded model pack. Primitive Lab is bunpav's version of that same instinct, wrapped in a UI instead of requiring you to write three.js yourself.

Why does this matter specifically for game jams and three.js web games?

Two audiences get an outsized benefit from a browser-native, seed-deterministic, pivot-correct asset tool.

Game jam teams are chronically squeezed on art time — we've written before about how a 48-hour jam pipeline has to compress "blocking geometry, UVs, a texture pass" into a fraction of the clock. Primitive Lab compresses that further for the asset categories it covers: no generation queue to wait on, no reroll for a bad silhouette, just sliders you drag until the shape is right, and an export that's already pivot- and scale-correct on the first try.

three.js and React Three Fiber web game developers get an even more direct win, since Primitive Lab is built on the same stack their game already runs on. A "Use in project" button copies a ready GLTFLoader snippet, so an asset built in the browser drops into a browser game with the loader code already written — no format-translation step, no context-switch to a separate DCC tool just to block out a scene.

How much does Primitive Lab cost, and how do I get in?

Primitive Lab is free during the beta for signed-in users — it's a procedural tool with no per-generation AI compute cost, so it isn't metered against bunpav's credit packs the way text-to-3D and image-to-3D generation are. Sign in (via bunpav's beta waitlist flow) and head to /dashboard/studio to use it directly.

Bunpav's prepaid credit packs — Starter at $9 for 100 credits, Studio at $39 for 550, Pro at $89 for 1,500 — remain the pricing model for the separate AI-generative features. See current tiers on the pricing section.

What should you do to try Primitive Lab this week?

  1. Sign in and open /dashboard/studio — it's free during beta, no credits spent on procedural building itself.
  2. Pick an asset from a category you actually need — a prop or platform for level dressing is a faster first win than a vehicle if you're new to the tool.
  3. Lock a seed once you like a variation, so you can reproduce or share the exact mesh later instead of hunting for "that one good roll" again.
  4. Try the "prompt a variation" bar with a couple of different words to see how it deterministically nudges seed, palette, and parameters — same word in, same variation out, every time.
  5. Export to GLB and drop it into your actual engine or three.js scene before you build a whole batch — confirm the pivot and scale read the way you expect, even though Primitive Lab is designed to get this right by default.
  6. Save the "Use in project" GLTFLoader snippet if you're building a three.js or React Three Fiber game — it removes a boilerplate step you'd otherwise write by hand.
  7. Graduate hero assets to AI generation only when you need something Primitive Lab's library doesn't cover — our procedural vs. AI-generated 3D guide walks through exactly when that trade makes sense.

Feature details, pricing, and ecosystem statistics in this piece are accurate as of publication (July 19, 2026). Primitive Lab is in active beta and its asset library is expanding — check /dashboard/studio directly for the current library and feature set before relying on specifics here for a production decision.

Player questions

What is Primitive Lab?

Primitive Lab is bunpav's browser-based procedural 3D asset studio, live at /dashboard/studio behind beta sign-in. It builds parametric low-poly assets — vehicles, rocks, props, and platforms — from geometry sliders and a variation seed, with live material modes, color palettes, and one-click GLB export, all running on three.js and React Three Fiber with no local software install.

How is Primitive Lab different from bunpav's text-to-3D or image-to-3D tools?

Primitive Lab is deterministic and parametric, not generative — the same seed and slider values always rebuild the identical mesh, because it's assembled from procedural rules rather than sampled from a diffusion model. bunpav's text-to-3D and image-to-3D tools are generative AI: you get a genuinely novel mesh from a prompt or photo, but a different result every run. They're built for different jobs, covered in our text-to-3D workflow guide and image-to-3D guide.

Why does a deterministic seed matter for a 3D asset generator?

A deterministic seed means an exact combination of seed and parameters always reconstructs the same mesh, so a teammate, a save file, or a re-export can reproduce an asset exactly instead of hoping a stochastic generator lands close. That reproducibility is also what makes procedural assets replace shared geometry data instead of shipping unique meshes per instance — a boulder field can store one seed and scatter parameters per rock rather than a hundred separate .glb files.

Is Primitive Lab free to use?

Yes — Primitive Lab is free during the beta for signed-in users. bunpav's prepaid credit packs (Starter at $9 for 100 credits, Studio at $39 for 550, Pro at $89 for 1,500) cover the separate AI 3D generation features — text-to-3D and image-to-3D — not procedural asset building in Primitive Lab.

What can I export from Primitive Lab, and where does it work?

One click exports a binary glTF (.glb) file that drops straight into three.js, Unity, Unreal, or Blender. A 'Use in project' button also copies a ready-made GLTFLoader snippet, so a web dev wiring the mesh into a three.js or React Three Fiber scene doesn't have to write the loader boilerplate by hand.

What assets does the Primitive Lab library include right now?

At launch: vehicles (pickup truck, hatchback, coupe, van), rocks (boulders), props (crates, barrels, street lanterns), and platforms (floating islands, ramps) — each with its own geometry sliders (body length/width, tire radius, jaggedness, and similar), a variation seed, and an overall scale control. bunpav says more asset types are being added.

More to read