Key answer: To price a 3D website, price the 3D layer as a distinct line item on top of a conventional site rather than quoting one blended number. Scope the interactive work into a tier — a single hero effect, a scroll-driven product reveal, or a full configurator — estimate the hours that tier actually costs you, apply your rate, then add a value-based premium because interactive 3D is a differentiator clients cannot get from a template builder. The lever that decides whether the project is profitable is your marginal cost: if you build the 3D on an owned, reusable source library you customize per client, the second and third project cost a fraction of the first, and the gap between what clients pay for differentiation and what it now costs you to deliver is your margin. Separate the base site from the 3D layer, tier the scope, and never quote bespoke WebGL from scratch when you can re-dress owned source.
Table of contents
- What "pricing a 3D website" really means
- What you'll learn
- Why 3D changes the pricing conversation
- The pricing model: base site + 3D layer
- Step 1 — tier the 3D scope
- Step 2 — cost the hours
- Step 3 — protect margin with owned source
- Step 4 — add value-based premium
- Step 5 — build the quote as line items
- Real product evidence
- What clients push back on
- Production trade-offs
- When to sell a 3D website
- When NOT to
- Decision matrix: pricing model by project
- How AETumi approaches it
- GitHub and technical proof
- FAQ
- Related AETumi resources
- Conclusion
What "pricing a 3D website" really means
Learning how to price a 3D website is not about finding one magic number — it is about separating a project into two priced things: a conventional, content-driven site, and an interactive 3D layer bolted onto it. The base site is a known quantity your studio already prices well: pages, content, CMS, responsive build, launch. The 3D layer is the new variable — a signature WebGL hero, a scroll-driven camera move through a product, or a real-time configurator — and it is what turns an ordinary quote into a premium one. Pricing a 3D website correctly means quoting those two layers separately so the client sees, and pays for, the differentiation rather than absorbing it invisibly into a blended day rate.
The reason this framing matters commercially is that a blended quote loses money in both directions. Fold the 3D into the base price and you either underprice the hard, differentiated work or overprice the routine pages to compensate, and the client cannot tell which. Break it out, and the interactive layer becomes a visible, sellable premium tier — the thing the client is actually excited about — while the base site stays competitively priced. Every step below builds toward that split.
What you'll learn
- Why the 3D layer must be priced separately from the base site
- How to tier interactive 3D scope so estimates stop being guesses
- A repeatable way to cost the hours a 3D tier actually consumes
- Why marginal cost — not first-project cost — decides profitability
- How to add a value-based premium without inventing a number
- How to present the whole thing as a quote clients understand and approve
Why 3D changes the pricing conversation
Standard marketing-site work has compressed in price because template builders produce competent, near-identical output, so a client's default expectation is "cheap and fast." Interactive 3D breaks that expectation. It is one of the few visible things a drag-and-drop builder cannot reproduce, which means it resists the race to the bottom and commands a premium — a studio that reliably ships a tasteful 3D moment has both a pitch advantage and a pricing tier competitors relying on closed builders cannot offer. Knowing how to price a 3D website is, in effect, knowing how to sell the one thing in your catalog that is not commoditized.
The historical catch is that 3D was unprofitable because every project meant hand-writing shaders and scene graphs from zero, which blew budgets and made outcomes unpredictable. That is the part that has changed, and it changes the pricing math directly. When the interactive layer is built on owned, reusable source, the cost of the next 3D site drops sharply — you are re-dressing a known rig, not inventing one. The full brief-to-ship pipeline that makes this repeatable is covered in the companion agency AI workflow article; this guide is what you charge for it.
The pricing model: base site + 3D layer
The model has one governing rule: price the base site and the 3D layer as two separate line items, and reserve one deliberate 3D moment per project. A page that is entirely 3D is slow, inaccessible, hard to maintain, and paradoxically less impressive, because the eye has no calm baseline to contrast against — and it is nearly impossible to scope, which makes it impossible to price. Restraint is what makes 3D both premium and quotable.
Concretely, every quote has a base-site figure your studio already knows how to produce, plus a 3D-layer figure derived from the scope tier, the hours it costs you, and a value premium. That separation is what lets you compete on the base site while charging confidently for the differentiation. It also protects you in negotiation: if a client balks at the total, you remove or downgrade the 3D layer rather than discounting your whole rate, and the base site still ships. The senior's job is to choose which single moment is worth the premium and to keep 3D out of everywhere it does not belong. See how it fits a studio's process in the agency workflow guide.
Step 1 — tier the 3D scope
Context. You cannot price what you cannot scope, and open-ended "some 3D" is unpriceable. Define a small set of tiers so every project maps to a known bucket. Encode them so estimates are consistent across your team.
// 3D scope tiers → representative build hours (your studio calibrates these)
const scopeTiers = {
hero: { label: 'Single hero effect', hours: 16 },
scrollScene: { label: 'Scroll-driven reveal', hours: 40 },
configurator:{ label: 'Interactive configurator', hours: 90 },
};
function tierFor(brief) {
if (brief.needsVariants || brief.realtimeOptions) return scopeTiers.configurator;
if (brief.scrollStory) return scopeTiers.scrollScene;
return scopeTiers.hero;
}
Explanation: three tiers cover the realistic majority of interactive work, and tierFor picks one from the brief so two estimators land on the same tier. Expected behavior: any incoming project resolves to a single scope bucket with a starting hour figure. Trade-off: the hour numbers here are placeholders you must calibrate to your own team's speed — treat them as a structure to fill in from your timesheets, never as a benchmark to quote blindly.
Step 2 — cost the hours
Context. Once a project has a tier, turn its hours into your floor cost — the number below which the project loses money. This is your internal cost, not the client price.
function floorCost(tier, blendedRate, overheadMultiplier = 1.35) {
const labor = tier.hours * blendedRate;
return Math.round(labor * overheadMultiplier); // add real overhead
}
// example: scroll scene, $85/hr blended, 1.35 overhead
const cost = floorCost(scopeTiers.scrollScene, 85); // 40 * 85 * 1.35 = 4,590
Explanation: multiply tier hours by your blended internal rate, then by an overhead multiplier that captures the non-billable reality of running a studio (management, revisions, QA, tooling). Expected behavior: a defensible floor below which you decline or rescope. Trade-off: the overhead multiplier is the number studios most often get wrong by setting it to 1.0 and then wondering where the margin went — measure your real ratio of billable to total hours rather than assuming, because an optimistic multiplier turns a "profitable" quote into a loss.
Step 3 — protect margin with owned source
Context. The single biggest lever in how to price a 3D website is marginal cost. The first time you build a scroll scene it costs the full tier hours; if you keep and reuse the source, the second costs a fraction. Model that so your pricing reflects reality after the first project.
function marginalHours(tier, reuse = 0.4) {
// reuse = share of the build you can re-dress from owned source
return Math.round(tier.hours * (1 - reuse));
}
// with a 60% reusable owned rig, a 40-hour scene now costs ~16 hours to deliver
const delivered = marginalHours(scopeTiers.scrollScene, 0.6); // 16
Explanation: reuse is the fraction of the build you already own — lighting rig, camera controller, scroll binding, capability guard — so marginalHours returns only the client-specific work left to do. Expected behavior: delivery hours fall sharply once you have an owned library, which is what makes the tier profitable at a competitive price. Trade-off: reuse is only real if the source is genuinely modular and yours to edit; a rented platform or a one-off build you cannot repurpose leaves your reuse at zero and your marginal cost at full tier — which is precisely the case for buying source you own for life instead of renting.
Step 4 — add value-based premium
Context. Cost sets your floor; it does not set your price. The premium reflects what the differentiation is worth to this client, which scales with the visibility of the moment and the size of the brand — not with your hours.
function clientPrice(floor, valueMultiplier) {
// valueMultiplier: 1.5 small brand, 2–3 mid, 3+ flagship launch
return Math.round(floor * valueMultiplier);
}
// $4,590 floor on a mid-market brand launch
const price = clientPrice(4590, 2.5); // 11,475
Explanation: the value multiplier prices the outcome (a hero moment a competitor cannot copy on a high-traffic launch page) rather than the input hours, which is how differentiated work is priced in every mature market. Expected behavior: a price that reflects impact, with your cost floor as the safety net beneath it. Trade-off: value-based pricing requires you to actually understand the client's stakes — page traffic, launch importance, brand tier — and it fails if you apply a flat multiplier to everyone; a small local business does not carry a flagship multiplier, and pretending otherwise loses the deal.
Step 5 — build the quote as line items
Context. Present the result as a base site plus an itemized 3D layer so the client sees exactly what the premium buys and can adjust scope without renegotiating your whole rate.
function buildQuote(baseSite, tier, opts) {
const floor = floorCost(tier, opts.rate);
const layer = clientPrice(floor, opts.valueMultiplier);
return {
lineItems: [
{ name: 'Base website (design, build, CMS, launch)', price: baseSite },
{ name: `3D layer — ${tier.label}`, price: layer },
],
total: baseSite + layer,
};
}
Explanation: the quote is two visible numbers, so a client who wants to reduce cost downgrades the 3D tier or drops it, and the base site is unaffected. Expected behavior: transparent pricing that survives negotiation and makes the premium a choice rather than a hidden markup. Trade-off: itemizing exposes the 3D price to direct scrutiny, which is a feature — it forces you to be able to justify the value, and if you cannot, the moment probably was not worth selling.
Real product evidence
The demo below is a production scroll-driven product reveal from the AETumi library — exactly the "scroll-driven reveal" tier in the framework above. It matters to pricing because it is the reusable rig that makes the marginal-cost math real: the lighting, the camera controller, the scroll binding, and the capability guard are already built, so delivering this for a client is re-dressing owned source, not quoting WebGL from scratch. Watch how finished it looks relative to how little client-specific work a scene like this actually requires when the rig is yours — that gap is the margin the whole framework is designed to capture. It ships as editable source you own for life, which is what keeps your reuse fraction high and your marginal cost low.
What clients push back on
The most common objection is "why does the 3D cost more than the whole rest of the site?" The answer, delivered plainly, is that the base site is a commodity the market has driven cheap, while the interactive layer is the one thing a template builder cannot produce — you are pricing scarcity and impact, not hours. The second objection is "can we do it cheaper?", and the correct response is not to discount your rate but to downgrade the tier: move from a configurator to a scroll scene, or from a scroll scene to a single hero effect. Because you quoted line items, that conversation is a scope adjustment, not a fight over your value, and the base site ships regardless.
Production trade-offs
Pricing 3D as a premium tier only works if you can deliver it repeatably, and that requires up-front investment: building or buying an owned source library, establishing a performance and accessibility baseline, and training the team to re-dress the rig rather than rebuild it. Until that library exists, your marginal cost is full tier hours and the margin is thin. The honest position is that for a studio doing one 3D project a year, the investment may not pay back — you are better off subcontracting or skipping the tier. The framework rewards studios that intend to sell interactive 3D repeatedly, because that is the only context in which marginal cost falls far enough to make the premium genuinely profitable. And for any given page, if the 3D moment does not clearly carry the brand, the most profitable decision is to not sell it and ship a fast static site instead.
When to sell a 3D website
| Sell the 3D layer when… | Why it prices well |
|---|---|
| The client is launching a flagship product | High stakes justify a value premium |
| Differentiation is the explicit brief | 3D is the one thing builders can't copy |
| The page carries meaningful traffic | Impact scales the value multiplier |
| You have an owned, reusable rig | Marginal cost is low, margin is real |
| The brand is design-led and premium | The buyer already values craft |
When NOT to
| Skip the 3D layer when… | Do instead |
|---|---|
| The site is text-first (docs, blog, B2B) | Price a fast conventional build |
| A single image conveys the idea | Quote a static hero, no premium |
| You'd build the rig from scratch for one job | Subcontract or decline the 3D |
| The client's budget is commodity-tier | Sell the base site, not the layer |
| The moment doesn't carry the brand | Don't price differentiation that isn't there |
Decision matrix: pricing model by project
| Project profile | Pricing model | 3D tier | Margin lever |
|---|---|---|---|
| Local business site | Base site only | None | Standard efficiency |
| Mid-market brand refresh | Base + hero effect | Hero | Owned hero rig |
| Product launch page | Base + scroll reveal | Scroll scene | Owned scroll rig |
| Configurable product | Base + configurator | Configurator | Owned configurator rig |
| Flagship / campaign | Base + reveal, high multiplier | Scroll / configurator | Reuse + value premium |
How AETumi approaches it
Expert Note — your marginal cost, not your first-project cost, sets your price. Studios that quote every 3D site as if it were the first stay unprofitable forever. The moment you own a reusable rig, the delivered hours on tier two drop by more than half, and your pricing should reflect that reality — competitive to the client, high-margin to you. If your reuse fraction is still zero, fixing that is a higher-leverage move than any negotiation tactic.
Expert Note — itemize the 3D layer, always. Blended quotes lose money quietly and collapse under "can we do it cheaper." Two line items — base site and 3D layer — let you compete on the commodity and charge for the scarcity, and they turn a discount request into a scope conversation. If you can't justify the 3D line item on its own, that is a signal the moment wasn't worth selling, not a reason to hide it in the total.
AETumi is an AI-native 3D web platform built to make the marginal-cost math work in your favor: its templates are production 3D scenes — heroes, scroll reveals, configurators — shipped as full, editable source you own for life, so they become the reusable rig that keeps your reuse fraction high. Because each template comes with an AI build prompt for Claude Code, Cursor, or the AETumi MCP, re-dressing a scene for a new client is describing the change and reviewing the result rather than rebuilding WebGL, which compresses your delivered hours further. You buy once and own it — Standard $19, Pro $39, Premium $99, and Full Stack $129 (full source plus the AETumi MCP workflow) — a one-time cost that turns the most expensive part of pricing a 3D website, the from-scratch build, into a fixed line you amortize across every client. The template catalog and live previews sit at AETumi.app.
GitHub and technical proof
The aetumi-agency-starter repository in the AETumi GitHub organization is the reference for the reusable-rig side of this pricing framework. It shows what an owned 3D source library looks like in practice — a capped render loop, a reusable stage canvas, a scroll binding, and a capability guard structured for re-dressing per client rather than rebuilding — loaded as Three.js r160 ES modules over an import map with no build step. Its limitations are stated plainly in the README: it is a starter skeleton, not a full agency operating system, the pricing constants in this article are illustrative structure rather than benchmarks you should quote directly, and the reuse fraction you actually achieve depends on how disciplined your team is about keeping the rig modular. The notes emphasize that the commercial payoff is entirely in reuse: the code exists so your second and third client cost a fraction of your first. Fork it, adapt the rig to your stack, and calibrate the hour and rate numbers to your own timesheets.
FAQ
How much should a 3D website cost? There is no single figure, because a 3D website is a conventional site plus an interactive layer, and only the layer varies with 3D scope. Price the base site the way you already do, then add a 3D-layer figure derived from the scope tier (single hero effect, scroll reveal, or configurator), the hours that tier costs your team, and a value multiplier for the brand's stakes. The right price is your floor cost times a value multiplier — not a number copied from a blog, and not a blended day rate.
Why is the 3D layer more expensive than the rest of the site? Because the base site is a commodity the market has driven cheap, while interactive 3D is one of the few things a template builder cannot reproduce. You are pricing scarcity and impact, not hours. When a client questions it, itemizing the quote makes the trade explicit: the base pages are competitively priced, and the premium buys a differentiated moment. If they want to spend less, you downgrade the 3D tier rather than discounting your whole rate.
How do I make a 3D website profitable at a competitive price? Drive down your marginal cost by building on an owned, reusable source library. The first scene costs full tier hours; every scene after re-dresses a rig you already own, so delivered hours fall by more than half. That gap — between what clients pay for differentiation and what it now costs you to deliver repeatably — is your margin. Studios that quote each project as bespoke stay unprofitable; studios that reuse source can be both competitive and high-margin.
Should I quote a fixed price or hourly for 3D work? Fixed price per tier, once you can scope reliably. Hourly transfers all the uncertainty of open-ended 3D onto the client and caps your upside at your rate, which defeats value-based pricing. Tiering the scope is what makes a fixed price safe: a defined hero, scroll scene, or configurator has a known hour cost, so you can commit to a number, protect it with the tier's floor cost, and capture the value premium on top. Reserve hourly only for genuinely exploratory R&D.
What if a client can only afford a commodity budget? Sell them the base site and skip the 3D layer. The framework's whole point is that the two are separable, so a commodity budget still gets a fast, well-built conventional site while you decline to give away differentiated work at a loss. Do not discount the 3D layer to fit — a below-floor 3D quote loses money on the hardest part of the project. Keep the premium tier available for when their budget or ambition grows.
Related AETumi resources
- AETumi for agencies — how a studio packages and delivers 3D as a service
- 3D websites — the production scenes that become your reusable rig
- Three.js fundamentals — the technology under the 3D layer you're pricing
- AETumi MCP workflow — how AI assistants re-dress owned source to cut delivered hours
- AI web design for agencies — the brief-to-ship pipeline behind these prices
Conclusion
Knowing how to price a 3D website comes down to structure, not intuition: separate the base site from the 3D layer, tier the interactive scope so it is estimable, cost the hours honestly with real overhead, drive down your marginal cost with an owned reusable rig, add a value premium sized to the client's stakes, and present it all as line items. The single decision that makes the tier profitable is reuse — the first scene costs full price, every scene after re-dresses source you own. Browse AETumi for agencies to see the delivery model behind these prices, study the reusable rig in aetumi-agency-starter, and read the full pipeline in AI web design for agencies. AETumi is an AI-native 3D web platform — its templates ship as full source you own for life, buy once, so the from-scratch build stops being your biggest cost. Start with a template at aetumi.app/pricing and price your next 3D project with a floor you can defend and a premium you can justify.
More from the AETumi library
Real, production-ready assets — preview the motion, grab the source.

