Cake Render Bake-Off

Cake customization tool · rendering direction · 25 Aug 2026

Cake Render Bake-Off

The same pastel-green three-tier drip cake, rendered five different ways in one afternoon — plus the competitive landscape and a decision framework for where the builder's visuals should go next.

The short version

  • The old canvas build didn't fail because "2D can't look like cake" — it failed on execution (outlines, mixed perspective, no light source) and it was fighting its medium. Fixing execution alone caps out at "nice sticker."
  • CSS is not the bottleneck you suspected — but CSS 3D genuinely is a dead end: it can only arrange flat rectangles, with no lighting and no curves. The browser itself is not the limit: WebGL via Three.js produced the most cake-like result of all five approaches, in the least code, and it runs on ordinary phones.
  • No app needed. Every quality bar a native cake app reaches is reachable in the mobile browser — and nobody in consumer cake ordering ships true 3D today, so a web 3D builder wired to real bakeries is genuinely differentiated. In India, nobody ships a visual builder at all.

Part one

Where the last build landed

The April build (franticc-backup/cake/index.html) is roughly 2,000 lines of hand-tuned canvas code that produce exactly one cake. Seen fresh, the problem isn't vague "cartoon-ness" — it's five specific, fixable-sounding-but-structural things:

  • Outlines force the clipart reading. Every stripe, drip and dollop carries a dark stroke. Dimensional cartoon art (Pixar, or any modern 3D-cute style) has no outlines — light does that work.
  • The perspective contradicts itself. Elliptical tops say "camera looking down 40°"; dead-straight sides say "camera at table height." The eye can't fuse it into an object.
  • No shared light source. Each element carries its own baked-in highlight, so nothing sits in one world.
  • The drip reads as a scalloped collar — a uniform belt with a wavy hem, not liquid with weight and gloss.
  • Embedded texture reads as pattern. Grid-distributed batter bits become polka dots.

The deeper structural issue: in this approach every new decoration type is another few hundred lines of bespoke drawing code. The marginal cost of growing the decoration library is enormous — and that library is the product.

The old canvas-rendered cake: a flat, outlined cartoon of a three-tier green drip cake
Canvas 2D · the old build ~2,000 lines for this one cake. Charming ingredients, but it reads as a sticker, not a cake.

Part two

Same cake, five ways

To separate "the medium can't do it" from "we executed it badly," I rebuilt the same cake spec — cream striped tiers, pastel-green drip, piped pink dollops, cherries — in four other technologies. Every image below was produced today, from scratch, in a few hours total.

The result in one sentence: effort and quality ran in opposite directions — the approach that took 2,000 lines produced the flattest cake, and the approach that took 200 produced the most convincing one, because lighting, curvature and occlusion come free with real 3D and must be hand-faked everywhere else.

Round two · 25 Aug 2026, evening

Pushing Three.js toward texture and realism

Fair critiques of round one: the Three.js render was too bright and flat to judge, Zdog's shapes are monochromatic by nature, and nothing showed texture. Round two is the same technology with better craft — a proper three-light rig (warm key, cool rim, low fill), procedural bump maps painted onto canvas at runtime (palette-knife streaks for buttercream, fine crumb noise for sponge), restrained reflections, instanced sprinkles, and a glossy-ganache variant. Still ~350 lines. Still no Blender, no downloaded textures, no post-processing — this remains the floor of what the approach produces, not its ceiling.

The realism toolkit — what closes the remaining gap

These renders are procedural primitives. Production quality comes from a known ladder, each rung cheap and additive:

The benchmark test · 25 Aug 2026, night

Can it ever look like the Design Connected cake?

The bar Zain set: Design Connected's chocolate icing cake — a professional offline render (V-Ray class). Verdict first: yes, at web resolution — and the wireframe on that very page is the proof. Their own preview shows the model naked: it is a dense hand-sculpted mesh. About 70% of what makes that image delicious is geometry authorship (fat drips sculpted with rounded lips, torn sponge edges, cloth-simmed napkin) and most of the rest is one big soft studio light on good PBR materials. A mesh like that exports to glTF and renders in a phone browser today; nothing in the image is exclusive to an offline renderer except the last few percent of light transport.

The gap, quantified

On giving up multiple angles: unnecessary — that trade buys nothing here. The quality lever is asset authorship, and an authored asset renders from every angle for free; rotation costs no realism. What a fixed hero angle does buy is composition: the food-photography framing, depth-of-field, crumb styling on the plate. The sane design is both: free rotation while building, one art-directed hero angle for the money shot.

Part three

How far can CSS actually go?

Three different questions hide inside that one:

1 · CSS 3D transforms (preserve-3d). Far enough to amaze on CodePen, not far enough to sell a cake. It composites flat rectangles in space: curved surfaces exist only as seamed prisms, there is no lighting model, and no shadows pass between objects. The best CSS 3D artists alive — Keith Clark, Amit Sheen, Ana Tudor — produce faceted papercraft, and the best pure-CSS 3D cake on record shows gapped panel cylinders and billboard toppings. When a medium's best-ever work sits below your minimum bar, the question is answered.

2 · CSS-styled SVG. Much further — as flat illustration. Fully parametric, crisp at any size, real text support, and the bake-off shows it can be genuinely pretty. But it is a picture, permanently. (Also worth knowing: most famous "CSS cakes," and all of Lynn Fisher's single-div art, are 2D paintings — the community itself routes around CSS 3D for organic objects.)

3 · CSS as a shading toolkit — gradients, ellipses, shadows. This is the same visual algebra the canvas build used, and it fails the same way: pseudo-3D heuristics don't survive contact with glossy, volumetric, organic material like frosting. The failure was the approach, not the canvas element.

Part four

The full option space

Every viable rendering direction, scored for this product: a cartoon-styled builder with tiers, drips, piped borders, free-placed decorations and text, mobile-first, with a growing decoration library.

ApproachVisual ceilingRotationEffort to goodCost per new decorationFit
Canvas 2D algorithmicthe current build Clipart — looking good requires writing an actual 3D engine (Kevs3D proves it's possible and pointless) Faked per angleVery highVery high — bespoke code each1/10
SVG illustration Beautiful flat art; parametric; real text NoneMedium (art-led)Medium — draw each sprite6/10
CSS 3D transforms Faceted papercraft (best-ever cake) RealHigh and thanklessA research project each2/10
Zdogzzz.dog · 28KB Charming flat-shaded cartoon 3D (community cake) RealLow–mediumLow — compose primitives7/10
Pre-rendered spritesBlender renders, layered PNGs Photoreal at fixed angles (Cylindo; old NIKEiD — which Nike abandoned for real-time 3D) 4–12 fixed anglesMedium code, high asset pipelineHigh — render matrix × angles × colors5/10
Three.js / r3fWebGL · toon or soft shading Effectively unlimited, including soft-cartoon (BakerInbox ships your feature list on it) FreeMedium–highMedium → low once the primitive/asset library exists9/10
Splinespline.design · no-code Its native look is soft pastel 3D (community #cake tag) FreeHours to gorgeous; medium-high to full configurator logicMedium — variables system strains at deep parametrics7.5/10
Native appUnity / SceneKit Same as WebGL for this class of visuals (see Real Cake Maker 3D) FreeHigh + store friction, lost web funnelSame asset pipeline as WebGL3/10
AI image generationBasedLabs and peers Gorgeous single frames; drifts between edits, 5–45s latency n/aLow to demo, unsolvable consistencyZero — but every edit costs inference2/10 as the loop6/10 as a final "glamour shot"

Part five

What everyone else is doing

Verified today, by loading the actual products (several block bots; those were driven in a real browser and their rendering stack read from the DOM).

At retail scale: it's all flat 2D compositing

Meijer cakes.com configurator: sheet-cake photo with size, flavor and border options
DecoPac / cakes.com (Meijer + hundreds of US grocery bakeries) — Fabric.js layered 2D canvas over top-down cake photography. The piped message isn't even previewed. Live.

Walmart and Sam's Club run the same play with a bespoke 2D canvas compositor (confirmed in-DOM: a single canvas-image element, no 3D libraries): wizard steps, photo-composite preview at a fixed angle. Walmart · Sam's.

Dairy Queen, Baskin-Robbins, Carvel: design galleries, photo upload, form options — static photos or light compositing, no builder canvas at all.

Why they converged here: their SKUs are photographed sheet cakes with edible-print toppers. Photo compositing is cheap per SKU and photoreal. It also means none of them can do what your tool does — arbitrary tiers, drips, free-placed decorations.

True 3D exists — but only baker-facing, never consumer ordering

BakerInbox 3D cake designer: smooth-shaded three-tier wedding cake with bead borders and flowers
BakerInbox (UK, free, no signup) — the closest existing product: tier shapes, finishes, drips, pearls, florals, PNG export, drag-to-rotate. Confirmed Next.js + Three.js from page source. Aimed at bakers quoting customers, not at consumers ordering. Live.
Vectary bakery configurator: pastel 3D scene with white cake on a pedestal among flowers
Vectary bakery configurator (agency one-off for an artisan bakery, built in ~2 weeks on a no-code 3D platform) — the strongest visual benchmark for the soft-pastel cartoon-3D direction. Live scene · case study.

Also in this tier: ProCake (baker SaaS, 3D quoting), Bakely (native app, 3D wedding-cake visualizer, ~200k users), Cakenote (2D/3D/AI design inside bakery management). Configurator platforms (Zakeke, Threekit) showcase shoes and sofas — no one has claimed food. Open source has nothing serious to build on.

India: catalog only — no visual builder exists

Bakingo photo-cakes catalog grid with photo-upload personalization
Bakingo — pick a pre-designed cake, upload a photo in a form, ₹689. No preview compositing at all. Live. FNP is the same model. CakeZone's photo-cake flow is gone.

The Indian delivery market — your launch market — runs entirely on catalog + photo-upload. Nobody renders anything.

Combined with the US picture, the strategic read: a consumer-facing 3D cake builder wired to a real order pipeline does not exist anywhere yet. The rendering decision is also a positioning decision.

Cake Ann builder: minimal 2D diagram preview with pricing and serving count
Cake Ann (indie US bakery) — the honest indie end of 2D: a diagram-grade live preview with pricing and yield. Nice UX skeleton, visuals nobody would share. Live.

Part six

The decision framework

Six things actually matter for this product, in this order: does it read as a cake · marginal cost of growing the decoration library · parametric freedom (any size, any color, free placement, text) · mobile reach (share a link, no install) · drag-and-drop fit · one person can build it. Weigh those and the space collapses to a handful of honest branches:

If this is the long-term product — rotation, growing library, text on cake, web-first
Three.js (react-three-fiber), soft-cartoon shading → the recommendation

The bake-off's best result in the least code; BakerInbox proves the full feature list ships on it solo; toon/soft materials land exactly the chosen cartoon aesthetic; drag-and-drop is standard raycasting; runs on low-end Android. Cost: the Blender + lighting learning curve — the highest floor of the web options, and worth it.

If you want the cutest possible MVP in weeks, and accept hard caps
Zdog

Bullseye aesthetic, everything parametric by construction, trivial on mobile. You will eventually hit: no lighting, weak text, z-sorting glitches as scenes grow — and a rewrite lands you at Three.js anyway. Fine as a stepping stone if speed-to-demo beats longevity.

If you'd rather art-direct in a design tool than code lighting
Prototype the look in Spline; ship in Three.js

Spline's native soft-pastel style is the target look; use it to lock art direction fast (its community is full of cakes). Its variables system strains under deep configurator logic, so treat it as the design tool, not the engine.

If photoreal previews mattered more than rotation and library growth
Pre-rendered Blender sprites at fixed angles

The at-scale players' territory, and Nike's abandoned one. Its superpower is photorealism — which is explicitly not your aesthetic — and you'd inherit a combinatorial render matrix. Named so it's clear it was considered and why it loses.

If you're tempted by app-only
Don't — not for rendering

Cake-game apps reach exactly the quality mobile WebGL reaches. Going native costs the share-a-link funnel that a "design it, send it to a bakery" product lives on. Revisit only for AR place-on-table (and even that has a web path via model-viewer).

If AI previews keep tempting you
Only as the final glamour shot

5–45s per edit and design drift between generations kill the interactive loop, and the preview stops being a buildable spec. The sane hybrid: img2img over a WebGL screenshot at checkout — geometry anchored, one-time cost, pure delight.

Part seven

If the recommendation is taken

The JSON design schema from the scoping doc stays exactly as it is — it's rendering-agnostic and becomes the single source of truth that the Three.js scene renders from. Concretely:

  1. One-week spike: extend today's 200-line PoC into a schema-driven scene — tiers, drip, borders and dollops generated from the JSON, orbit controls, recolor via material swap. This de-risks the whole direction for the cost of a week.
  2. Lock the art direction with 3 lighting/material looks (matte pastel, glossy toon, soft-studio) rendered on the same cake — pick one. Optionally mock it in Spline first.
  3. Decoration library pipeline: simple decorations stay procedural (primitives, like today's dollops and cherries); complex ones (figurines, florals) become small glTF assets modeled in Blender — each new asset is modeling work once, then free forever, at every angle and color.
  4. Drag-and-drop = raycast: pointer ray → tier surface hit → decoration snaps to the surface normal. This is standard, well-documented Three.js territory, and it's better than 2D drag-drop because placement is genuinely on the cake.
  5. Text on cake via TextGeometry bent along the tier arc or a decal texture — both first-class, neither possible convincingly in any 2D approach.
  6. Performance guardrails for low-end Android: cap pixel ratio at 2, budget draw calls, no post-processing. A one-cake scene is far below what phones handle in games.

Honest risks: the learning curve is real (lighting and materials judgment, some Blender); the first two weeks will feel slower than canvas hacking did. Mitigations: the spike proves the pipeline before commitment, BakerInbox is a living reference of the destination, and every sub-problem (configurator, raycast placement, toon shading) has canonical tutorials — e.g. Codrops' color-customizer walkthrough.

All five bake-off demos were built 25 Aug 2026 against the same cake spec; competitor screenshots captured the same day from live products. Demo files: three-cake.html, zdog-cake.html, css3d-cake.html, svg-cake.html plus the original build, in the session scratchpad. Competitor rendering stacks verified in-DOM (Fabric.js at cakes.com; Three.js at BakerInbox; bespoke canvas at Walmart/Sam's). Full source list: DecoPac/cakes.com · Walmart · Sam's Club · Dairy Queen · Baskin-Robbins · Carvel · BakerInbox · ProCake · Bakely · Cakenote · Vectary · Zakeke · Cake Ann · Bakingo · FNP · zzz.dog · Keith Clark · singlediv · Kevs3D · Cylindo · Threekit · Nike By You · Spline · model-viewer · BasedLabs.