ONLINEAGENT_OPS 2026.Q3 HOME ARTICLES CRAFT RECORD BLOG HUBS FAQ SEARCH
HOMEARTICLESWHO OWNS WHAT YOU GENERATE
EXPLAINER · RIGHTS

3D Websites From a Prompt

What “one prompt” actually builds, the library name that decides whether you get WebGL or a tilted div, and the three steps every demo leaves out.

READ13 min
WORDS2,583
SECTIONS7
TYPEGUIDE
CHECKED31 AUG 26

The demo is real and the trick is smaller than it looks. Here is what "one prompt" is actually doing, where it stops working, and how to get a 3D page that a client can put on the internet.

TL;DR — THE SHORT VERSION
  • You are not generating 3D. The AI writes React code that loads a 3D library. No model, mesh, or texture is created by the prompt.
  • One line decides whether it works on a phone. The standard camera control blocks page scrolling over the canvas until you override it.
  • The library is React Three Fiber — a React wrapper around Three.js. Naming it in your prompt is most of the difference between a flat page and a 3D one.
  • One prompt gets a scene. It does not get a site. Expect the first result to be a spinning shape on a dark background, and expect to spend your next ten prompts on everything around it.
  • The real 3D asset comes from somewhere else — a modelling tool, a scan, or a library. This is the step the demos skip.
  • Property listings are the strongest use case, because the thing being sold is spatial and photos flatten it.
  • The cost is weight. A 3D page ships hundreds of kilobytes before it shows anything. This site removed its own 3D layer for exactly that reason.
SKIP THIS IF

You want a normal marketing page. 3D is a cost you pay for a reason — showing a space, a product's form, or a physical mechanism. If the content is text and photos, a 3D layer makes it slower and harder to read with nothing gained.

IN PLAIN ENGLISH, BEFORE THE DETAIL

Think of it as furnishing a room you did not build.

The room is a 3D engine that already exists and already knows how to draw things. Nobody makes that; you switch it on.

The furniture is your 3D model — the house, the product, the car. This is a file. It has to come from somewhere else, and getting it is the real work.

The prompt is you telling someone where to put the furniture, where to point the lamp, and where the visitor stands when they walk in.

So "a 3D website in one prompt" means: the AI arranged a room, using an engine it did not write, around an object you have to supply. That is genuinely useful and much smaller than it sounds — and it explains exactly where it stops helping.

What "one prompt" actually does

01

The AI writes code, not geometry

This is the part that gets misread. When you prompt an AI builder for a 3D website, no 3D is generated. The model writes JavaScript that pulls in an existing 3D library, sets up a camera and some lights, and puts a shape on screen.

Everything in the result already existed: the renderer, the maths, the material system. The prompt is doing assembly, not creation. That is why it works so reliably — and why it hits a wall the moment you want a specific object rather than a generic one.

02

The three names that matter

Almost all of these builds sit on the same stack, and saying the names out loud in your prompt is the single highest-value thing you can do.

Three.js — the underlying WebGL library. Does the actual drawing.ENGINE
React Three Fiber — lets you write that scene as React components instead of imperative setup code. This is what AI builders generate well, because it looks like the React they already write.THE ONE TO NAME
Drei — a helper library of ready-made pieces: orbit controls, environment lighting, loaders, text.SHORTCUTS

Why naming them should change the output: "make it 3D" is ambiguous — CSS can tilt a flat card in perspective and that satisfies the request. Naming the library removes the ambiguity. This is reasoning about how an instruction is interpreted, not a measured comparison — this site has not run the two prompts side by side across builders, and results vary by tool and by month. Try both on yours; the specific one costs nothing extra to write.

TAKEAWAY

Do not ask for "a 3D website". Ask for a React Three Fiber scene and say what is in it. Name the library, name the file, name the interaction — it costs the same to write and leaves far less to interpretation.

The step every demo skips

03

Where the actual 3D object comes from

A demo shows a house, a car, a product. The prompt did not make that. A 3D model is a file — geometry, textures, materials — and it comes from one of four places:

A modelling tool. Blender if you know it, or a browser-based editor if you do not. Slowest, most control.BUILD IT
A model library. Thousands of ready assets, many free. Check the licence before commercial use — this is where people get caught.FASTEST
A scan. iPhone Pro models have carried a LiDAR sensor since the iPhone 12, and Apple’s Object Capture brings photogrammetry to phones without one. Scanner apps export .glb directly. For property, this is the one that matters.FOR SPACES
Generated. Text-to-3D exists and is improving. Output is still rough for anything a client will inspect closely.IMPROVING

The format you want is glTF, usually the .glb single-file version, which packs geometry and textures into one file. It is a royalty-free Khronos Group standard — published as ISO/IEC 12113 in 2022 — and Khronos itself calls it "the JPEG of 3D". Every tool above exports it and every major browser engine handles it.glTF 2.0 specification, Khronos Group; recognised as ISO/IEC 12113:2022. The ".glb" extension is the binary single-file variant defined in the same specification. Checked 31 Aug 2026

"One prompt" is a real thing that happens once — at step two. The build around it is not one prompt, and the steps either side are where the work is.

The build, step by step

Five steps, in order. The order is the advice — doing step one late is what wastes a day.

1

Get the 3D model. Before you prompt anything.

Do: download, model, or scan the object, and export it as .glb.

Why first: the file decides your camera, your lighting and your page weight. Prompting a scene before you have the model means rebuilding it once the real one arrives.

Watch for: the licence. A model that is free to download is not automatically free to use in a client's commercial site.

2

One prompt for the scene

Do: ask for a React Three Fiber scene by name, that loads your file, with a camera, lighting and drag-to-rotate. This is the "one prompt" the demos show. The full version is in the next section.

Why: it removes the ambiguity in the word "3D", which a builder can otherwise satisfy with a CSS perspective transform.

Watch for: a result that renders before the model has downloaded — you get an empty frame and it reads as broken.

3

Prompt the page around it

Do: the ordinary web work — sections, headings, copy, contact form, footer.

Why: this is where the page earns its living. The 3D is one section of a real page, not the page.

Watch for: putting your actual words inside the 3D layer. Text drawn into a canvas cannot be indexed, selected, translated, or read aloud. Keep the words in HTML.

4

Prompt the behaviour

Do: decide what happens on scroll, on click, and on a small screen — and say so explicitly.

Why: defaults are desktop defaults. Nothing about a mouse-driven scene assumes a thumb.

Watch for: the touch-action trap below. It is the difference between a page that scrolls on a phone and one that does not.

5

Compress, then test on a real phone

Do: compress the model, then open the page on an actual mid-range handset.

Why: mobile GPUs are far weaker than laptop ones, and the model is usually heavier than the library.

Watch for: testing by narrowing your browser window. That checks your layout and tells you nothing about performance. This step is where most of these projects quietly die.

TAKEAWAY

Steps 1 and 5 are the whole job. The prompt in the middle is the easy part — which is exactly why the demos only ever show you that one.

A prompt that works

The difference between a usable first result and a spinning cube is specificity about five things: library, asset, camera, light, and control.

SCENE PROMPT — ADAPT THE BRACKETS
Build a full-screen 3D viewer section using React Three Fiber (@react-three/fiber) with @react-three/drei helpers. MODEL Load the glTF file at [/models/house.glb] and centre it in frame. Show a loading state while it downloads. CAMERA Start at a three-quarter view, slightly above the object. Limit vertical rotation so the user cannot go under the floor. LIGHT Use an environment preset for realistic reflections, plus one soft key light. No harsh single-point lighting. CONTROLS Drag to orbit, scroll to zoom, with damping so it feels weighted. IMPORTANT: OrbitControls sets touch-action:none on its container, which stops the page scrolling on phones. Set touch-action:pan-y on the canvas element so vertical page scroll still works over the scene. Do not rely on turning zoom off — that is a separate setting and does not release the gesture. CONSTRAINTS Render nothing until the model is ready. On screens under 768px, drop to a static image instead. Respect prefers-reduced-motion: no auto-rotation if it is set.
WHY THE LAST THREE LINES MATTER MOST

The touch-action line — this is the single most common way one of these pages ships broken. OrbitControls applies touch-action: none to its container so it can read drag gestures; the side effect is that the page stops scrolling whenever a finger is on the canvas. On a full-screen scene that means the page cannot be scrolled past at all. Users conclude the site is broken and leave.Documented behaviour of three.js OrbitControls, and an open request against the React wrapper asking for a way to opt out (pmndrs/drei issue 1233). The draft of this page said to "disable zoom on touch", which does not fix it — zoom is a separate setting and the container still carries touch-action: none. Corrected before publication. Checked 31 Aug 2026

"Drop to a static image under 768px" — the honest mobile answer. A heavy scene on a small screen is worse than a photograph of the same thing.

"Respect prefers-reduced-motion" — a system setting some people turn on because movement makes them ill. Constant rotation ignores it. One line prevents that.

Why property is the use case that fits

05

The content is already spatial

Most 3D on the web is decoration. Property is the exception, because the thing being sold is a space, and photographs destroy exactly the information the buyer wants — how rooms connect, what the light does, how big it really is.

The same logic covers anything with those properties: architecture, venues, furniture, machinery, anything where a person would normally walk round it before deciding.

The test is one question: does the buyer need to understand the shape of it? If yes, 3D earns its weight. If the decision is made on words and price, it does not.

TAKEAWAY

3D is not a style upgrade. It is a way to communicate form and space. Applied to a page selling neither, it is a slow, fragile decoration — and the client is the one who pays for it in lost visitors.

What it costs, stated plainly

06

Weight, and who carries it

A 3D page downloads a rendering library before it can show anything, and then downloads the model on top. This site shipped a 3D layer of roughly 650 KB and then deleted it entirely — the pages it was meant for were not worth the weight, and nothing else used it.First-hand: the site's own 3D stack, removed 26 Aug 2026. The figure covers the deleted bundle as a whole — the Three.js build plus the scene code on top of it — not the library on its own. Offered as one real measurement, not a benchmark: your total depends on which pieces you import and how your builder bundles them. Checked 31 Aug 2026

The number to watch is not the library. It is the model. An uncompressed scan can be many megabytes. Compressed properly, the same asset can land in the hundreds of kilobytes.

07

The two failures that get shipped

Search engines see an empty page. The scene is drawn into a canvas element, and a canvas has no text in it. If the page's words live only in the 3D layer, there is nothing to index and nothing for a screen reader to read. Put the real content in real HTML and let the 3D sit alongside it.

Nobody tested the phone. Mobile GPUs are far weaker, and a scene that runs at sixty frames on a laptop can crawl or crash on a phone. The fallback in the prompt above exists for this reason.These are general properties of canvas-rendered WebGL content and of mobile hardware, stated as reasoning rather than measurement. The fix in both cases is to test rather than trust the desktop preview.

WHAT THIS PAGE IS NOT CLAIMING

It does not say which builder is best, and it names no pricing — plans and credit systems change faster than any article, and a figure here would be wrong before it was useful. Check the vendor's own pricing page.

It also does not claim one prompt produces a finished site. One prompt produces a scene. That is genuinely new and genuinely useful, and it is a smaller claim than the demos make.

Before you show a client

1 — Does the page still scroll normally on a phone with a finger on the 3D?
2 — Is every word on the page present as real text, not only inside the canvas?
3 — Is there something on screen while the model loads?
4 — Does it degrade to an image on a small or slow device?
5 — Is the model compressed, and do you know its file size?
6 — Do you hold a licence for every asset, for commercial use?
SOURCES AND HONESTY ABOUT THEM

The stack described here — Three.js, React Three Fiber, Drei, glTF — is the documented, standard way to render 3D in a React page, and each is an open-source project with public documentation. Checked 28 August 2026.

What this page deliberately does not do. It quotes no prices, no credit costs and no performance benchmarks. Builder pricing changes monthly, and a benchmark taken on one machine with one model tells you nothing about yours. The one number here — roughly 650 KB — is this site's own deleted 3D bundle, a real measurement of one case rather than a rule. The claim that naming the library changes what a builder produces is reasoning, not a tested result, and is marked as such where it appears.

The through-line: the prompt assembles a scene from parts that already exist. The model, the mobile fallback, and the words a search engine can read are all still your job — and they are the parts that decide whether it ships.