Rendre — path-traced product rendering in the browser

starting the render engine…
rendre
r00000-437 ↻
⏺ session
⊘ section view — drag the plane slider to scrub
→ environment light
✕

Rendre is a path-traced product renderer that runs entirely in your browser. Import a model, drop a material, swap the studio, and save a clean image — no account, no upload, offline once installed. It's the renderer you open before you can afford the expensive ones. Every render is yours: no watermark, nothing tracked — put it straight in a portfolio or a submission.

New here?

How to use it

  • Keys & clicks — ⌘Z / ⌘⇧Z undo & redo (one history across modeling and rendering) · Delete removes the selected part · F frames the model, same as ⊡ Frame · right-click anything for its menu · double-click a part to edit its material · hold Shift while rotating to snap 45°. That's the whole keyboard; everything else is mouse or touch.
  • Import a model — ⤓ Import…, or drag a file onto the viewport: OBJ · STL · glTF/GLB · Rhino 3DM · STEP · IGES · 3MF · USDZ (ASCII). It lands auto-scaled, centered on the studio floor and framed; STL, 3DM, STEP and IGES are read Z-up, as Rhino writes them, or Y-up from SolidWorks and Creo. Rendre greets you with a default object to start; a model heavier than your GPU's triangle limit is decimated to fit so it still loads (Fit heavy models, on by default: a light copy to orbit, the full mesh for renders) — turn it off and a heavy model is declined with a note to decimate and re-export — so the room never chokes.
    moreRule of thumb: aim for under ~600k triangles for snappy work (a strong GPU handles several million; the decline note tells you your exact ceiling) — triangles are what count, not file size, but roughly a 10–20 MB GLB or 30–50 MB OBJ usually lands in range. A heavy import then orbits as a light proxy while your renders use the full-res mesh automatically (⇄ Viewport: light / full switches between them — ). Turn on Add to scene to append the next import beside what's already on the stage instead of starting fresh. A part keeps the name you gave it: Rendre reads an object's own name, and falls back to its layer name when the object has none — which is how most Rhino files are built, so a model on Body / Cap / Stopper layers arrives with those names rather than “object 1, 2, 3”. The name is what a material link, a saved Explodre turn and the Parts tree all travel by. A Rhino 3DM's surfaces are read exactly: each Brep is cut from its NURBS into a closed mesh, with or without a render mesh in the file, and its part shows exact in Parts. STEP and IGES files open exact too, with their part names, colors and assembly; a part used many times is cut once. Preferences → Exact surfaces turns it off, to use a mesh instead. Once the view settles, exact surfaces are cut again for it, so curves stay smooth up close; a still is cut for its own size. Preferences → Surface accuracy sets how closely, in pixels. Colors come with the file: a Rhino layer's or object's color or render material, an OBJ's .mtl (drop it with the OBJ) and a USD displayColor each land on the nearest library material, or on an edited copy of one when none is close. Preferences → Material templates puts a material on every part or layer whose name holds a word you choose (Body → ABS White), on every import; Save these as a template writes the rules from the scene. Re-importing a file with the SAME name asks whether to Update (replaces matching parts, keeps your materials) or Append instead. A material you set by hand survives an Update; one a rule or the file chose follows the file.
  • Camera — drag empty space to orbit; scroll or pinch to zoom. The two round buttons at the top-right are a Blender-style nav widget: drag the magnifier to zoom (a tap zooms in a step) and drag the hand to pan the view across the scene. The Camera tiles (Front · ¾ · Side · Top · Hero) frame the model from a preset angle; ⊡ Frame recenters on your model.
    moreWide · Fit · Tight sets how much of the frame the model fills — keeping your angle, changing the crop (Tight for a hero product shot). Poster sizes the model to 72% of the frame's short side, for a print or a wall. Lens is focal length (35mm equivalent): the model stays the same size and the perspective changes — long flattens, short exaggerates depth.
  • Shift moves the picture up, down or sideways without turning the camera, the way a tilt-shift lens does. Auto-straighten levels the camera and shifts it so vertical edges stay vertical: tall products stop leaning. Guides on the frame show thirds and the center; they never render.
  • Drop a material — open the materials drawer (right edge): hundreds of PBR materials grouped by what they are made of (Plastic · Metal · Paint · Glass · Rubber · Cloth · Wood · Stone · Gem · Light · Special), each with its families inside. Drag a swatch onto a part, or select a part and click a swatch; double-click a swatch to apply + edit it. Search by name (“glass”, “gold”, “carbon”).
  • Edit a material — the editor tab (right edge, below materials), or right-click / double-click a part. Kind at the top (Plastic, Metal, Paint, Glass, Rubber, Cloth, Wood, Stone, Gem, Light, Special) shows the controls that matter for what it is made of, and choosing one sets starting values. Tune Color, Metal, Rough, Glass (transmission) + IOR, Coat, Sheen, Brushed (brushed/spun-metal streak — 0 is a round highlight, higher smears it into a directional one; the streak is fixed in world space, not the part's own rotation, so turning the part doesn't turn the streak with it), Translucency (light wraps past the shadow edge instead of stopping sharp: skin, wax, plush fabric, a thin plastic held to a light) and Glow.
    moreOn a transmissive (Glass) material, Fire splits white light into color as it refracts — a diamond's sparkle — and Dispersion (Abbe) next to it drives the SAME effect from the real optical-industry Abbe number instead of Fire's own made-up units (lower Abbe = more fire; set it above 0 and it overrides Fire). Isolated refraction (pavé), also transmissive-only: turn it on for a pavé stone so its own light path passes straight through a DIFFERENT gem that also has it on, instead of refracting/reflecting off it — a dense cluster of stones set close together reads as clean individual gems instead of one muddied blur. No visible effect on a lone stone. Edits make a session copy; the library stays untouched.Generate palette in Tinct opens Juxt's palette generator in a new tab, seeded with the part's color; send a palette back here as a swatch dock. Interference is a thin-film coating (soap bubble, oil slick, anodized titanium), useful from about 100 to 1000 nm; its film IOR sets how strong the color shift is.
  • Volumes — materials with an inside — most materials are a surface: light arrives and comes back. A volume is the other thing — light goes in, scatters around, and some of it finds its way out. Search the drawer for volume (or smoke, fog, resin) and you get the Media shelf: Amber, Resin Smoke, Glass Bottle Green, Ink Indigo, Jade Milky and Wax Alabaster.
    moreAmber, jade and wax light from within the way real resin and stone do — thickness doing the work, not a shader pretending. Resin Smoke goes further: the mesh becomes a density that thins away to nothing at its own surface, a curl of noise drags it around, and what is left is smoke that remembers roughly where the object was without keeping its outline. It runs on its own clock, so it turns over while the camera orbits. The editor gains MEDIUM and FIELD panels — density, scatter tint, directionality, scatter depth, then dissolve, skin depth, edge softness and a TIME scrub with a freeze per timebase.Scatter tint: black absorbs what it catches (colored glass, amber, ink), bright scatters it on (smoke, wax, milky jade) — it's what separates a tinted solid from a cloud. Scatter depth is the volume's own budget, not the scene's bounce count — a scattering medium at 2 is a gray blob; higher is slower and softer.
  • Images — drop a picture onto a part, or Image › Choose… in the editor. It sits on the model’s own UV layout when the file has one (a .glb brings its colors, metal, rough and base-color picture with it) and projects from the sides (Box) when it doesn’t; Repeat tiles it, and the Color multiplies it. The picture travels inside the saved scene.
  • Weave — a twill is not a satin — any woven cloth material carries a Weave control beside its thread colors: Plain (over one under one — poplin, canvas), Twill (over two under two, shifted a thread each row — the diagonal wale of denim), Satin (one face thread in five, never adjacent — long floats, smooth and lustrous), Basket (threads in pairs — hopsack, open and chunky) and Rib (the weft rides across in cords — grosgrain, faille, corduroy). The threads, the colors and the pitch stay the same; what changes is the order they cross in, which is what actually makes a twill a twill. The library ships nine cloths built this way — Sateen, Twill, Hopsack, Oxford, Grosgrain, Faille, Corduroy, Slub Linen and Shantung Viscose.
  • 3D print — search the drawer for print (FDM, SLA): layer lines stacked up from the ground, each layer a real height in millimeters read against the model's size. Bump sets how much the layers stand out, Rough takes it from matte to gloss, the Grain axis tilts the build direction. + Add 3D print… in the editor gives any plain material the same layers.
  • A video with a transparent background — turn Transparent background on before a Turntable or a Film clip and the product turns against nothing, ready to drop onto your own plate. No video codec a browser can reach carries an alpha channel — H.264 has no alpha plane at all — so the frames stay lossless PNG and the container does the work. Pick Movie (.mov) for a single QuickTime file that opens in Final Cut, Premiere, After Effects and Resolve with the background already gone, or PNG frames (.zip) for the same frames loose.
    moreBeing lossless is the honest catch: reckon on ten to twenty times the size of the same clip rendered opaque — the panel tells you roughly what it will weigh before you commit the hours, and again when it lands.
  • MARMO marble — pick any Marmo material (20 Italian marbles) and the editor gains a stone panel: choose the structure (veined · clouded · breccia · speckled · uniform), the vein and clast colors, vein scale & contrast, warp, redox, clast size & roundness, speckle, hue and seed. It is computed by world position (triplanar) — no UVs, and it survives any scale. ⤓ Seed from a photo samples a marble photo into the params (ground & vein color, scale, warp) — no AI, no upload; an approximation that argues with the photo, never a texture of it.
    moreA starting point; the sliders take over.
  • Phantom (ghost) — the editor's Phantom toggle turns a material into a non-refracting, facing-driven translucent shell: nearly transparent facing the camera, solid at the silhouette — the exploded-view “ghost” poster look, without glass's bend or tint (the interior renders true, undistorted). Tune Front opacity, Edge opacity and Edge falloff to dial how much of the interior shows through and how sharply the rim holds the form. The outliner's one-tap ◐ Ghost flips it on the part's current material instantly — model, tap Ghost on the shell, render. A ready-made Ghost swatch (bone-warm tint) lives in the materials drawer too.
  • Light it — the environment drawer swaps the studio (33 HDRIs) to relight; Rotation / Height / Intensity dials aim it. Drag any .hdr (or a jpg/png) onto the viewport to use your own. Teach the light: drag Rotation and watch the highlights crawl across the gloss.
    moreThat's why the render looks how it does; image-based lighting stops being magic once you can see it. Behind the model chooses what sits behind it: surround is a clean infinity cove sweeping up from the floor, flat is the Background color on its own — no floor, no shadow. Rendre never shows the studio as the background. The environment lights your product; it is not a photograph of the room the product was lit in, and the color behind it is always yours to pick. Pick white and the studio floor turns white too, keeping the product’s shadows — a seamless white sweep; color the floor or give it a library material to see it again. The same drawer's Background image loads a photo backdrop — a doorway, a porfido fan, a slab of marble — and the Render dialog composites the product onto it.
  • Light Rig + AfterImage — open the environment drawer and expand Light Rig + AfterImage at the top: real lights placed around the model, not just the studio's own ambient glow. Six presets do the placing for you — Three-Point, High Key, Sweep, Rim, Dramatic, Sunset — each one drops a whole rig at once and dims the studio so the lights have room to read. + Add light adds one of your own; drag it into place with Azimuth / Elevation / Distance / Size.
    moreThen the trick: pick each light's color and intensity — even after the render has already started, or finished — and it recomposites instantly, no re-render, because every light's contribution was kept separate from the start. Placement is the one thing that DOES re-render (you moved a real light); color and brightness never do. Clear removes the whole rig and gives the studio its brightness back. A LIGHTS folder also sits in the Parts tree (left edge) once a rig exists — click it to grab the whole rig with the gumball and move every light together, keeping its arrangement, or click one Light row inside it to grab just that one. If the gumball doesn't show up, the light is simply off-frame at your current angle (a real light rig often sits outside the shot, same as a photo studio's softbox) — zoom out or ⊡ Frame to bring it into view.
  • Click for a highlight — in Light Rig + AfterImage, press ⊙ Click for a highlight, then click a point on the model: the light moves so its reflection lands right there, at the same distance. light moves the light picked in Parts (else Light 1); strobe aims the dome's last strobe that is on. Either is added when there is none. Each click is one undo step; Esc or the button again stops.
  • Breakup — each light in the rig has its own Breakup disclosure: throw a patterned shadow in front of it, like a gobo or cookie on a real fixture. Seven shapes — Blinds, Foliage, Caustics, Water, Window, Clouds, Iris (Water is pool light: bright wandering lines) — with Scale, Rotation, Contrast, Softness to fit it to the light, and a Seed (with ⟳ Re-roll) so no two lights land on the exact same pattern. In ▦ Film, once at least one light has Breakup on, an Animate Breakup switch appears — turn it on and the pattern drifts, spins, or scrolls across the clip via that light's own Speed sliders (Drift U/V, Spin), in Film, Shots and the Turntable alike; off, it stays frozen at whichever phase you left it.
  • Audio-reactive lights — drop an audio file at the top of the Lights drawer and Rendre analyzes it once into an amplitude envelope; any light's Audio-reactive disclosure then modulates that light's intensity to the track wherever time-driven playback already runs (▦ Film render, or a live Turntable). Baked, not live — the same moment in the track always produces the same intensity, so it composites correctly into an offline render.
  • HDRI Editor — double-click any studio in the environment drawer to open it: your model on the left, lit live; the dome itself on the right. Add strobes — extra bright spots baked right into the environment image, not separate lights — and aim each with Azimuth / Elevation / Size; ↺ Reset reverts the whole dome to its real recipe (or an empty one, for your own photo). Closing keeps your changes; they travel with the scene like any other edit.
    more⬇ Export EXR saves the dome as a real .exr file that opens in Nuke, Houdini, Blender and the rest — and carries the exact strobe recipe inside it, so ⬆ Import EXR brings every strobe back editable, not just the pixels.
  • AfterImage Retouch — any still you render with the Light Rig active quietly carries its own per-light data along in the saved PNG (AfterImage in renders, Preferences — On by default since it's separate from and much lighter than Recipe in renders below, which carries the whole scene; switch it off there if you want a smaller file). Drag that PNG back onto the viewport later — no model needs to be loaded — and a dedicated retouch view opens: just the image and a slim panel with each light's on/off, color and intensity, still free and instant. ⬇ Resave writes a new PNG that's still remixable next time; ⇄ Swap image… loads a different AfterImage PNG into the same view; ✕ closes it.
    moreIf a PNG was saved with both AfterImage data and a full Recipe in renders scene, you're asked which one you want — a quick light remix, or the whole scene reopened, ready to re-render. Turn on AfterImage: environment layer (Preferences, Off by default — it doubles this render's time) and the retouch view also gets an Environment on/off + intensity control, so you can isolate just the Light Rig's own contribution against a black background, or dial the studio's ambient fill back in — works even with no lights at all, for an environment-only remix.
  • Move things — select a part and the gumball appears: colored arrows move along an axis, rings turn, cubes scale that axis, the white center drags freely on screen, the amber cube scales uniformly. Drag a handle and the part moves — it previews as a bounding box while you drag (so it stays fast even on heavy models), a live readout at the top of the screen shows exactly how far/how much as you go, and the mesh updates when you let go. Double-click any handle to type an exact amount: degrees on a ring, a percent on a scale cube (100 = no change, 200 = double, 50 = half, a negative percent mirrors that axis), or a nudge on an arrow (1 = a small step, 100 = a big one).
    moreRight-click → Rotate 90° / Rotate by… for exact turns too.
  • Right-click anything — a part (Edit material · Copy/Paste material · Link/Unlink material · Drop to floor · Settle on floor · Frame this · Isolate · Hide · Duplicate · Delete), the floor, empty space (Frame all · Settle all on floor · Import · Environment · Materials), or a material swatch (Apply to selected). Delete / Backspace removes the selected part.
  • Link materials — right-click a part → Link material, then right-click another → Link to copied part: from then on, editing either part's material — color, roughness, a marble structure, anything in the editor — updates both at once, a linked ⊶ mark shows in Parts. Paste material is the one-time version (copies a look once, no ongoing sync); Link is for keeping a set of parts matched as you keep tuning — a whole flatware set, every screw on a product. Unlink material frees a part to edit on its own again.
  • Measure — click two points on the model for the real distance between them, in mm; the HUD also shows the whole model's mm bounding box the moment you turn it on. A view aid only — never rendered, never saved into the model.
  • ✎ Markup — draw arrows, freehand pen marks, and text labels over the render for a design crit — pick a tool and color, drag to draw. Screen-space only: it never touches the model, and ⬇ Save composites the marks onto a real offline render (never a live-canvas grab).
  • ▢ Region — press it, then drag a box on the stage: every sample goes into the box, the rest holds. Press it again, or move the camera, to resume the whole frame.
  • ⊘ Section (Preferences, off by default) — slice the model with a plane to see inside it: foam, lattice, shell walls. Pick the axis, flip which half is kept, and scrub the Slice slider. A view aid only — weight and export stay the whole, unsliced model.
  • ⁂ Explodre — the exploded view: take the product apart along the way it actually comes apart, and put it back. Spread is the whole feature: 0 is assembled, 1 is the solved explode, and you can keep going past that. Rendre works out each part’s own direction from the geometry — the part that rests on the floor stays put and everything else leaves the part it sits in, so a cap lifts off a bottle and a stopper lifts out of the cap, with no naming or setup.
    moreParts that seat against each other never pass through each other — a cap leaves a bottle neck the way it actually comes off. A part that hinges rather than coming off is found from the geometry: a thin pin threaded through two parts is a hinge, and the part swings on that pin’s own axis instead of sliding away — a lighter’s lid opens rather than lifting off. Opens is where you overrule that: Swing forces it on a part with no pin, Slide refuses it. Slide also takes off a part reported as having no way out, straight through whatever holds it. Dragging a swinging part with the move tool also says “not like that” and turns it back into a slide. Pattern changes how they leave, Order changes when, Opens says whether a part swings or slides, and Feel changes the motion’s character. To aim one part yourself, turn on the move tool and drag it — that becomes its direction. Feel · Loose also arcs the parts on the way out, by as much as the solve can fit without letting anything touch. Turn gives the selected part rotation as it travels, for a cap or a bolt backing out. Pick any Shot with Explodre open and the product comes apart as the camera moves, framed so it never shrinks. Two shots drive the product themselves and need no setup at all — picking one takes the model apart on its own: Explodre Reveal lifts it off the floor, turns it, takes it apart and puts it back together; Explodre Void does the same with the ground taken away. Leaving the shot puts everything back where it was. Two ready-made assemblies live in Preferences → Test scenes — a jeweler's torch with nested joints and a pocket light meter with an enclosed cell — for trying all of this against something with real joints rather than a duplicated part, which has none. A view aid: the mesh is never edited, and weight & export stay whole. Pattern: Apart sends each part the way it actually comes out, measured against the part it sits in; Outward pushes everything from the center; Along moves them all on one axis. Order: Together moves every part at once; Outside-in and One by one take the outermost first — the cap off the body before the stopper off the cap. Feel: Mechanical eases in and out, Precise is dead linear, Loose winds up before it goes and settles past its mark. Two to three turns reads as threaded; more reads as a drill.
  • Filigrana — the control cage from a .rendre saved in Unreason with Filigrana on. Its points are real stones in the render: gold where the cage is hot, then canary diamond, then clear diamond. Its edges are drawn over the image and hidden wherever the form stands in front of them.
    moreLines, Crease & boundary dashes (solid at sharp creases, long dashes at soft ones, dash-dot on open edges) and Membrane (a faint film on each cage face) sit beneath it. The switch is there only when the open scene carries a cage, and the file keeps it as you leave it.
  • Animation — render a video — ⌖ Shots is the quick path: pick a ready-made camera move (orbit, dolly-zoom, boom, hero float…, or Explodre Reveal and Explodre Void, which take the product apart as they move), scrub it live in the viewport — Weight sets how the move feels: light arrives quick like an earring, heavy accelerates slowly and settles late like a cast-iron pan, same path, different mass — then Render… hands it to Film to pick size, samples and aspect — nothing starts automatically, you render it there when you're ready. The dialog's Stills tab is the same idea without a timeline — seven product-photography compositions (E-comm Hero, front / side / back elevations, Top / Flat Lay, Detail Callout, Lifestyle Context) that move the camera once and suggest an aspect to match, with ⬇ Render this still instead of a scrub. Any move or still you have adjusted can be kept: + Save as new shot… names it, it joins the grid as its own tile, and it travels in the saved .rendre file.
    more▦ Film is the custom path: ◆ Capture a keyframe as you change the camera, lighting, depth of field, or a material, capture again, and Film morphs between your keys at whatever aspect you need (16:9, 9:16, 1:1, 4:5). Once you have keys, ◂ / ▸ step through them (each jump moves the camera/materials/lighting to exactly what that key captured), ✕ Delete removes only the one you're viewing, and ✕ Clear all wipes every key. ▶ Preview steps through the whole timeline in the viewport first; ⬇ Render video (.mp4) saves a QuickTime-ready file that plays in every browser, with a live per-frame progress bar and time estimate. On a browser without WebCodecs (an older Safari, Firefox before 130) it automatically falls back to a .webm instead of just failing — same content, same camera moves, but its timing follows however long the render actually took rather than being locked to your chosen frame rate.
  • Type an exact value — every slider shows its value beside its name, and that value is tappable: click it, type the number you want, press Enter. Useful when a drag cannot land where you need it — a roughness of exactly 0.35, an angle of exactly 45, a pattern Scale of exactly 0. Escape cancels, and a value outside the slider’s range simply lands at the nearest end. Dragging is unchanged; this is just the precise way in.
  • Pattern Scale down to nothing — on a Grain, Mottle or Marmo material, the pattern’s Scale now runs all the way to 0, where the pattern becomes infinitely large — the surface reads flat, keeping the material’s color and finish without any figure in it. Slide right for finer, left for broader, 0 for none. (Bump scale is deliberately different: it is a real size rather than a frequency, so it keeps its floor — 0 there would mean infinitely fine detail, not a flat surface.)
  • Relief carve — surface detail can be real geometry instead of a shading trick. The Relief carve slider, beside Bump in the material panel, cuts the surface down to a real depth in scene units: the recesses then hold their own shadows, catch grazing light and occlude one another. The difference is unmistakable under a low, raking light, where a bump-mapped floor still reads flat and a carved one does not.
    moreIt follows the same pattern the material's Bump already uses, at the same scale, so a stone stays the stone it was — and Bump scale sets how fine or coarse the carve reads, exactly as it does for bump. It carves the floor, including the swept backdrop, so it reads from any angle; on objects nothing is carved, and the material’s Bump still shades the surface. Because it is real geometry it costs real render time, so it ships at 0 — off — and only the materials you turn it on for pay for it.
  • Turntable — the one-click spin: ⟲ Turntable… orbits the camera a full 360° around your model, no keyframes to capture and no move to pick. Set the Duration of one turn and its Frame rate, add Cam Pan (a gentle rise and fall through the turn) or Ease (slow → fast → slow), then choose Frame size, Aspect and Samples per frame the same way you would in Film. ▶ Preview plays the turn live in the viewport at preview quality so you can judge the move — nothing is saved, and a second click stops it.
    more● Record renders it properly: every frame is a full offline render at the samples you picked, with a progress bar, a time estimate and a ■ Stop render that keeps the frames already finished. The spin re-frames itself for the aspect you choose — a 9:16 turn is composed for a vertical frame, not a landscape one cropped down — and it stays framed the whole way round, not just at the start.
  • IMotion — import a baked animation — drag in an Alembic (.abc) file (a physics sim, cloth, or soft-body bake from Houdini, Blender, or Maya) the same way you'd drop in a model: it's a clip, an ingredient, not a new animation-authoring surface — Rendre already has its own keyframe animator and Film for motion made INSIDE the app. A ⏱ badge appears on the part's row in Parts; click it for retime controls — Fit (Once holds at both ends, Loop wraps, Stretch spans the whole shot), Range, Speed, Offset — plus a live scrubber that previews any point in the bake instantly, no keyframes and no render needed. It plays back automatically with any Shot or Film render at whatever settings you've dialed in — there's no separate on/off switch.
    moreA multi-object bake lands as one group, every part riding the SAME clock: change Fit or Speed on any one member and the whole group follows. The source file itself is never embedded in a saved scene, only its settings — reopening a scene whose clip can't be found shows a dimmed ⏱! badge naming what's missing; click it to relink the same (or a replacement) file, and your Fit/Range/Speed/Offset come back exactly as you left them.Fit · Stretch ignores Speed and Offset — it always spans the whole shot.
  • Batch — queue up renders and walk away — the batch drawer (right edge) queues stills and films to render later: + Add still / + Add film in the drawer itself, or the + Batch button next to Render…/Film's own render button, adding whatever's currently set up. Adding an item opens the drawer automatically and brings it to the front. A queued item stays editable right up until it starts — W, H and samples, right in the row.
    moreA Time budget caps the whole queue's total render time, scaling samples down first, then resolution if needed, always honoring what you actually asked for. ▶ Start batch works the list in order; ⏸ Pause holds between items, keeping whatever's mid-render safe. A floating HUD at the bottom of the screen shows which item is rendering and how far along it is, even with the drawer closed — always something to watch, even during an offline render. When the queue reaches the end, the whole set downloads itself as one .zip — the point of walking away is coming back to the files, not to one more button. (A batch you stop yourself doesn't: it keeps everything already rendered and waits for you to hit ⬇ Download all, which bundles every finished render into that same .zip whenever you want it.)⇄ RendreJuxt opens every finished render in a new tab for side-by-side compare, N-way wipe, video sweep export and cull/rank.
  • Compare A / B — ⇆ Compare A / B captures the look now, lets you change one thing (a material, a studio) with the camera held still, captures again, then wipes between the two with a draggable seam. The crit question made visible: “is the brushed or the polished finish stronger here?”
  • Lens: try a material or environment — ◎ Lens (LOOK / ANIMATION) puts a circle on the stage, a loupe to preview a what-if: drag it, resize it by its knob or the wheel. Drop a material on it and the part under its center wears it inside the circle, following as you move; drop a studio and the whole look inside is that studio. Magnify zooms the inside up to 1.8×.
    moreApply makes it real in one undo step; Discard or Esc changes nothing; Swap inside and outside trades the two, and again flips back. Compare A / B compares whole pictures; the lens, one area at a time.
  • Moods: a starting look — ◐ Moods (LOOK / ANIMATION) dresses the whole scene in one click: colors and finishes on the parts, a studio, a Light Rig (some with a Breakup pattern such as Water), an image style, a background and a floor. Twenty moods, plus Mix, which draws each piece from a different mood. Each pick draws a new seed, which changes which part gets which color and finish, and ⚄ Roll draws another for the mood worn; type a seed to come back to one. One undo step undoes the mood, and afterwards everything it set is ordinary: edit any part, the studio or the lights as usual, or Capture the colors as a Look. The contact sheet's all moods shows them side by side.
  • Looks: colorways — ◧ Looks (LOOK / ANIMATION) keeps colorways. + Capture saves every part's material and visibility under a name; click a look to wear it again, in one undo step. Render all looks adds one Batch still per look at the current camera, each file named for its look; the contact sheet's all looks puts them on one page, and a look dragged onto the Lens shows inside the circle. Looks save with the scene.
  • Labels — + Label… in the editor puts a picture (a PNG, JPG or SVG: a logo, a mark, a number) on the part, then you click the part where it goes: it centers on the click, laid on the surface. A part takes as many labels as you like; each is listed under its part in PARTS, where you select, hide, reorder or delete it.
    moreProjection: Planar lays it flat along the surface, Cylinder wraps it around the part like a bottle label, UV follows the model's own layout, Box projects it from whichever side faces it. Finish: Printed is ink over the material, Foil is polished metal in the picture's colors, Etched is darker and rough, Embossed raises it from the surface. Size, Opacity and Rotation fit it; the blue outline shows where it lies.
  • Paint — ◍ Paint… brushes a color directly onto the surface: pick a Color, Brush or Erase, Size, Hardness and Strength, then drag on the model. No UVs — it paints at mesh density, on top of whatever material the part is wearing, and only on the side facing you. Orbit pauses while painting; click ✓ Done painting to orbit normally.
    moreFill Part covers the part in the color; Clear Part and Clear All remove it. Each stroke is one undo, and the paint is saved with the scene.
  • Quality & image — the Quality pills (Draft · Studio · Final) set how clean the render is; Exposure brightens or pulls highlights back; Depth of field (Aperture + Focus) adds a shallow-focus blur — or hit ⊙ Click to focus and click the spot on the model you want sharp; the focal plane snaps right there. The image converges live as you watch — the viewport is the render. Uncheck Denoise preview to watch the raw path-trace resolve — the sand and fireflies settling into the image; the grain is the honest signal of an unconverged frame, not a flaw to hide.
    moreThe readout by the controls says how converged the frame is — resolving → settling → clean → converged — an honest sample count, not a fake 100%, so you decide when it's good enough to save.
  • Lens look — the Advanced / Lens disclosure (collapsed by default, below Depth of field) adds two finishing touches that live on the FINISHED image only, never the render itself: Bloom softly blooms bright highlights and emitters, Chromatic aberration adds a faint lens color-fringe at the frame edges. Both redraw instantly as you drag — converge to a clean, high-sample image first, then dial the look live, with zero re-render.
  • Image style — the Image style fold below Exposure grades the finished picture and never re-renders: White balance in kelvin (6500 K is neutral, lower is cooler, higher warmer), Contrast, Saturation (0 is black and white), Vignette (darkens the corners) and Sharpen.
  • Stills, films, turntables, batch frames and the contact sheet all get the same grade; EXR files and render passes stay scene-linear and ungraded.
  • Render & export — ⬇ Render… saves a clean PNG up to 4K (with a time estimate before you commit; Denoise, on by default, cleans the grain out of the finished still, so far fewer samples look finished). Format saves a PNG at 8 or 16 bits, an EXR · float that keeps the light unclipped, or EXR · layered passes: one EXR with the beauty, one layer per Light Rig light (they add up to the beauty), albedo, normal, depth, object and material ids, and the denoised beauty. While a still or video render is actually running, the side panels and drawers dim and pause; the render dialog and the viewport stay live and front-and-center the whole time.
    moreChanged your mind mid-render? ■ Stop & save appears next to the progress bar — it saves exactly what's accumulated so far (an honest sample count, not the target you asked for), it doesn't just throw the render away. The ⊞ Export & save… button gathers the file exports behind one door: ⬇ Save scene… writes the whole setup to one re-editable .rendre file, ⊶ Copy share link puts the whole render — model, materials, camera, lighting — inside a URL (no upload, no account, no backend); paste it anywhere and opening it rebuilds the exact scene, ready to spin — the fastest way to bring a live render to a crit without anyone downloading anything, and ⬆ To Rhino / Blender… hands the scene off as a GLB — named parts at real scale, every material in Cycles’ PBR vocabulary, plus the camera and the lighting setup as a cited reference. In the Render dialog, ⬇ Per-part mattes saves a ZIP of the beauty plus a transparent cutout of each part — stack them in Photoshop / Affinity / Figma to recolor or adjust parts on their own layers (the hand-off for finishing in a 2D editor, not another 3D app). ▦ Contact sheet renders your model under six studios (or six finishes) into one labeled grid PNG — the crit artifact: which reads best? For composites: Transparent background cuts the product out, a Background image (loaded from the environment drawer — it's a backdrop choice) drops it onto your own image, and Shadow-catcher floor adds a grounding shadow so it sits down on the plate — this works even with Transparent background OFF, darkening the real floor in place, not just for cutouts (reads cleanest with a light studio floor — tune Shadow strength; Shadow accuracy → Accurate renders the floor a second time with the model hidden and compares the two, so an unevenly-lit floor doesn’t read as haze — and, on a glossy floor, a real reflection of the model survives into the cutout too, not just the shadow — costs roughly double the render time, worth it for a hero shot). A scene with a heavy imported mesh is too big for a share link — save the .rendre instead.
  • ⬇ Manifest (weight + watertight) — in the Render dialog, pick a real material and download an honest manifest: triangle count, exact mm bounding box, volume, a per-part watertight (closed 2-manifold) check that names any unclosed part with its open-edge count, and the weight at that material's real density. The economics inside the file, not just the picture.
  • The render can carry its own recipe (sometimes called a “magic PNG”) — turn on Recipe in renders (Preferences) and every saved ⬇ Render… PNG embeds the scene that made it (model, materials, camera, lighting, exposure) right inside the image file — no upload, no account. Drag a Rendre render back onto the viewport and it rebuilds that exact scene. Hand in the image and the reproducible setup as one thing — this is the answer to “my class only accepts one file upload to the LMS”: one PNG, and your professor can drag it right back in and see the whole build, materials and all.
    moreOff by default — a render you hand out or post publicly won't silently carry your whole scene setup unless you choose to include it. (A very heavy imported mesh is left out of the image either way — save the .rendre for those — but the look still travels.)
  • A movie can carry its own keyed recipe too (experimental) — turn on Recipe in movies (Preferences) and every ⬇ Render video — from Film, Shots, or a queued Batch item — embeds the keyed scene (camera, materials, lighting, your ◆ keys) inside the exported .mp4/.webm. Drag that movie back onto the viewport and it rebuilds the animation, keys and all, ready to re-render — a movie carries the recipe as text only, never an instant remix like the PNG's heavier buffer mode. Off by default: messaging and social apps re-encode video on upload far more aggressively than they do images, which strips the embedded data (the movie still plays fine either way) — share the original file if you want it to stay re-openable.
  • Start over — ⟲ Clear scene (the SCENE group, under Import) empties the stage; ↺ Reset everything (in Preferences) returns to the original starting model and clears every setting (it asks first).
  • Auto-rotate — idle auto-rotate lives in Preferences (the ⚙ by the wordmark).
  • Advanced dispersion (Preferences, off by default) — on a glass or gem material with Fire or Dispersion (Abbe) set above 0, this swaps the basic red/green/blue approximation of its fire for a continuous rainbow: every sample draws one true wavelength across the visible spectrum instead of picking one of 3 fixed colors. Real, physically-derived color, not a filter — and a genuinely noisier render than basic mode, so it's a quality/cost dial you turn on when you want it, same as bounce count or aperture.
  • Bananas Mode (Preferences, experimental) — lifts the safety caps that keep a render finite by default: samples up to 1,000,000 (a numeric field replaces the preset pills) and bounces up to 64. For experiments, not deadlines — a heavy setting can run for hours, or reset a weak GPU (it recovers on its own if it does). Resolution and import size stay capped either way, and it's never remembered between sessions, so nobody inherits a bananas render by accident. A 🍌 tag stays visible the whole time it's on.
  • Trace over a photo (Preferences → Reference image) — loads a photo to ghost faintly over the stage, so you can eyeball a real object's proportions against it while you frame or position an import: Opacity and Size dial it in, Clear removes it. It's a tracing aid only — never weighed, never exported, never saved into the scene file.
  • Live preview auto-stop (Preferences, off by default) — caps the live viewport's own accumulation at a chosen sample count, so it stops burning GPU (and battery) once the image already looks clean instead of grinding on toward the natural 4096-sample ceiling forever. Never touches a real ⬇ Render — that always runs whatever sample count you asked for there, regardless of this cap.
  • Ray visualization (Preferences, teaching, off by default) — click anywhere on the model and it draws that pixel's actual bounce path through the scene: real hit points and surface normals straight from the BVH, with a simplified mirror-bounce direction at each hit, ending where the ray leaves toward the environment's light. A diagram of how a ray finds its way through a scene, not a literal replay of one random path-trace sample.
  • System benchmark (Preferences) — renders a fixed test object (the “Rendre Twist”) at a fixed resolution and sample count and times it: a rough, comparable read on how fast THIS computer renders, on THIS build. Takes about 10-20 seconds.
  • Bounce-count override (Preferences, off by default) — surfaces the raw 1/2/4/8 light-bounce picker in Core Controls, a technical dial mainly useful on glass-heavy scenes. Off by default because Quality (Draft/Studio/Final) already sets a sensible bounce count for most work — this is for when you want to hand-tune it yourself.
  • Film: interpolate part properties (Preferences, on by default) — between two ▦ Film keyframes, a part's color/roughness/metalness and position blend smoothly instead of jump-cutting at the next key; geometry only blends when both keys share the same mesh topology (a mismatched part falls back to holding). Turn it off to go back to the old hold-until-the-next-key behavior. Camera/exposure/DOF/environment always blend regardless of this setting; which studio or material a part is wearing always holds — a part can't be “43% gold.”

How it renders

Rendre is a real path tracer, running on your GPU through WebGPU. Every pixel fires rays that bounce around the scene gathering light from the studio environment and the materials — the way light actually behaves — so reflections, soft shadows, glass refraction and color bleed are physically simulated, not faked. The image starts noisy and refines as it accumulates samples; that live, converging preview is the final render. The display transform is AgX, for filmic highlights. It needs WebGPU (Safari 26+ on Mac, or a current Chrome / Edge) and a real GPU.

Credits & license

Made by Phil Renato and Claude (Anthropic), 2026 — part of ILCA, one app among the rest of renato.design. Rendre's overview — the two editions, the feature tour and the comparison table — is the Rendre card at renato.design/applications. MIT-licensed research software — your models and renders are yours (see LICENSE, DISCLAIMER & NOTICES alongside the app). Installable on iPad — Add to Home Screen for a fullscreen app that works offline.

The science inside is the published literature: path tracing after Kajiya (1986); the GGX microfacet model (Walter et al., 2007) with Smith masking, Schlick's Fresnel approximation and exact dielectric Fresnel; environment importance sampling after Pharr, Jakob & Humphreys (PBRT); BVH construction after Wald (2007); orthonormal bases after Duff et al. (2017); O'Neill's PCG hash; and Troy Sobotka's AgX display transform (polynomial fit after Benjamin Wrensch). The procedural MARMO marble is computed triplanar from value-noise and a Voronoi partition — after Georgy Voronoi (1908) and Steven Worley's cellular texture (1996) — with hue rotation via Rodrigues' formula. The WGSL / JS implementations are Rendre's own — see NOTICES for details. Hear the fuller history at Classicery's Canon: Kajiya's rendering equation (track 13) and Cook, Porter & Carpenter's distributed ray tracing (track 11) — the same physically-based thin-lens DOF this engine implements.

Studio environments: 33 in the drawer = 28 synthesized originals + 5 photographic sets from Poly Haven (CC0), plus the built-in default (also synthesized) — per-file provenance in NOTICES. Built with three.js + rhino3dm. A provisional, early-stage renderer — expect rough edges.

Full LICENSE / DISCLAIMER / NOTICES text — embedded here so it travels with this one file, even if renato.design ever disappears

LICENSE.txt

RENDRE (web edition) — LICENSE
===========================================================

This software is released as research. It is provided "as is" with no warranty
or fitness-for-purpose claim, implicit or explicit. The authors publish it to
document an ongoing design inquiry authored through Iterative LLM Co-Authorship
(ILCA) between Phil Renato and Claude (Anthropic) — not to support professional
or commercial workflows. See DISCLAIMER.txt for full context before use.

Rendre is published as a research artifact — an investigation into
browser-native, offline path-traced product rendering — not as a commercial
product. It is made available for use, study, and teaching at renato.design free
of charge, without accounts, telemetry, or payment of any kind.

WHAT YOU MAKE IS YOURS
- Use it in the browser for any purpose, including in your own commercial
  design work: the models, scenes, exports, and renders YOU make are YOURS,
  entirely. No watermark, no attribution requirement.
- Study it. The source is one readable HTML file by design.

LINEAGE. Rendre (web edition) is forked from the WebGPU render room inside
glisten, which is itself a sibling of the native Rendre desktop renderer (a
Blender app-template fork). Same family, same render-view parity discipline.

---

MIT License

Copyright (c) 2026 Phil Renato

⚠ THIRD-PARTY AND ASSET CARVE-OUT. The MIT grant below covers the code authored
for this project. It does NOT cover the third-party components it bundles or
the material and environment libraries it ships, each of which carries its own
terms: three.js (MIT), rhino3dm (MIT), OpenCascade (LGPL-2.1), IBM Plex
Mono (SIL Open Font License 1.1), the AgX display transform and the other
algorithm attributions, and the provenance statement covering the material + environment libraries. Every one
of them is named, with its license and its provenance, in NOTICES.txt — read
that before redistributing any part of this. The grant also gives no right to
use the Rendre name to imply endorsement.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

DISCLAIMER.txt

RENDRE (web edition) — DISCLAIMER
===========================================================

Rendre is RESEARCH SOFTWARE — a research
artifact published for study and teaching, not a commercial
product. It is provided AS IS, without warranty of any kind,
express or implied. Use it at your own risk.

WHAT RENDRE IS. A path-traced product renderer that runs
entirely in your browser: import a model, drop a material,
swap the studio environment, render a clean image. No
account, no upload, no cloud — your model never leaves your
machine. Offline-capable once installed.

RENDERS ARE PREVISUALIZATION. Path-traced renders are a
faithful physical simulation of the bundled materials and
environments, but they are previsualization — not
color-managed proofs. The display transform is AgX; final
print/production color decisions need a managed pipeline.

IMPORT. Rendre imports OBJ, STL, glTF/GLB, Rhino .3dm, STEP
and IGES (their surfaces cut exactly; a surface that cannot be
cut takes a mesh instead). Large models are decimated/capped to stay
interactive; very high-poly CAD may need decimating first.
A file's colors land on the nearest material in Rendre's own
library; dress the parts from there.

EXPORTS. Image renders are saved as PNG. Scene hand-off to
Rhino / Blender is a GLB carrying named parts at real scale,
PBR materials in Cycles' vocabulary, the camera, and the
lighting setup as a cited reference.

BROWSER REQUIREMENTS. Rendre needs WebGPU — Safari 26+ on
Mac, or a current Chrome / Edge — and a real GPU. Older
iPhones and Safari versions that lack WebGPU cannot run the
path tracer.

NOTICES.txt

RENDRE (web edition) — THIRD-PARTY NOTICES + ASSET PROVENANCE
===========================================================
Rendre is RESEARCH SOFTWARE published as a
research artifact by Phil Renato (see LICENSE.txt +
DISCLAIMER.txt). This file lists what it uses and where the
bundled assets came from.

RUNTIME LIBRARIES (vendored locally in vendor/ — not fetched from
a CDN, so the app works fully offline once installed)
-----------------------------------------------------------

three.js — MIT License
  Copyright (c) 2010-2026 three.js authors

  Permission is hereby granted, free of charge, to any person
  obtaining a copy of this software and associated documentation
  files (the "Software"), to deal in the Software without
  restriction, including without limitation the rights to use,
  copy, modify, merge, publish, distribute, sublicense, and/or
  sell copies of the Software, and to permit persons to whom the
  Software is furnished to do so, subject to the following
  conditions:

  The above copyright notice and this permission notice shall be
  included in all copies or substantial portions of the Software.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  OTHER DEALINGS IN THE SOFTWARE.

rhino3dm / openNURBS — MIT License
  Copyright (c) 2018-2026 Robert McNeel & Associates
  (Same MIT terms as above. Loaded on demand, only when a
  Rhino .3dm file is imported. "Rhino" and "Rhinoceros" are
  trademarks of Robert McNeel & Associates; Rendre is not
  affiliated with or endorsed by McNeel — the name is used only
  to identify file-format compatibility.)

OpenCascade Technology 7.9.3 — LGPL-2.1 with the Open CASCADE exception
  Copyright (c) Open Cascade SAS. Loaded on demand, only when a
  STEP or IGES file is imported (vendor/occt/). The reader's
  source, its build script, and the license and exception texts
  are beside it there, so it can be rebuilt against a modified
  OpenCascade: https://github.com/Open-Cascade-SAS/OCCT (V7_9_3).

oidn-web — MIT License, © 2024 pissang
  (Vendored at vendor/oidn/; runs the denoiser that cleans a finished render.)

Intel Open Image Denoise weights (rt_hdr_alb_nrm) — Apache License 2.0,
  © Intel Corporation. Vendored unmodified at vendor/oidn/.

mp4-muxer — MIT License, © Vanilagy
  (Same MIT terms as three.js above. Vendored at
  vendor/mp4-muxer/; writes the QuickTime-ready .mp4 that Film,
  Shots, and Batch video renders export, fully offline.)

FONTS
-----------------------------------------------------------
IBM Plex Mono — SIL Open Font License 1.1, © IBM. Vendored
locally (vendor/font/) so the app needs zero cross-origin
fetches offline; not served from Google Fonts at runtime.

Syne — SIL Open Font License 1.1, © the Syne Project
Authors. Bold weight only, used for the "Rendre" wordmark —
the same display face renato.design's own marketing pages
set their headings in. Vendored locally the same way as
IBM Plex Mono above (vendor/font/syne-700.woff2).

CODE PROVENANCE (algorithms re-implemented from literature)
-----------------------------------------------------------
Rendre's own render path (what you actually use in this app):
- AgX display transform: Troy Sobotka's AgX (the Blender 4.x
  default look); the minimal polynomial fit follows the widely
  shared approximation published by Benjamin Wrensch (iolite
  engine blog). Reimplemented in WGSL for this app.
- GGX microfacet model: Walter et al. 2007; Smith masking;
  Schlick Fresnel approximation; exact dielectric Fresnel.
- Environment importance sampling: piecewise-constant 2D
  distribution after Pharr/Jakob/Humphreys, PBRT.
- BVH: binned SAH construction after Wald 2007.
- Orthonormal basis: Duff et al. 2017 (Pixar).
- PCG hash RNG: O'Neill, PCG family.
- Path tracing: Kajiya 1986, the rendering equation.
These are methods from published literature; the WGSL
implementations here were written for Rendre.

Present in this file but DORMANT in Rendre mode (Rendre (web
edition) is served from the same HTML source as glisten's SDF
clay modeler — see LICENSE.txt's lineage note; the modeler's UI
is hidden here, but its code ships in the same download):
- Marching tetrahedra polygonization: after Doi & Koide 1991.
- Mesh fairing: Taubin 1995 (λ|μ smoothing without shrinkage,
  with Newton projection back to the true SDF surface).
- Smooth-min SDF combines, and the analytic curve/segment
  distance functions (the quadratic-bezier tube and capsule
  behind the Tendrile / Spine / Braid organic builders):
  popularized by Inigo Quilez.
- L-systems (the GROW branching builder): the parallel
  rewriting grammar of Aristid Lindenmayer 1968; 3-D
  turtle interpretation after Prusinkiewicz & Lindenmayer,
  "The Algorithmic Beauty of Plants" 1990. The stochastic
  grammar + tropism model and the GLSL/JS code are glisten's.
- Skeletal posing: linear-blend skinning of the grown bodies
  (standard skeleton-subspace deformation).
- The Alembic/Ogawa writer: original to glisten.
All of the above are methods from published literature; the
GLSL/JS implementations were written for glisten.

BUNDLED ASSET LIBRARIES (Rendre mode)
-----------------------------------------------------------
The parametric MATERIAL LIBRARY (567 entries) consists of
scalar shading parameters (color, metalness, roughness, IOR,
transmission, coat, sheen, emission) extracted from the
material library authored for Rendre (Phil Renato's research
renderer), with Rendre's own re-authored names and taxonomy
(Lucida, Aurum, Argent, Latten, Heartwood, Lithic, …).
Texture-driven and procedural node-group materials were
deliberately EXCLUDED from the port — only parameter values
travel, no third-party textures, node graphs, or .blend data.

The ENVIRONMENT LIBRARY was REBUILT 2026-06-06 so every
shipped studio has pinned provenance. ONE TELLING, used
everywhere: 33 fetched studios in the drawer = 28
synthesized originals + 5 Poly Haven CC0 photographic sets,
plus the embedded default studio (also synthesized). Two
buckets, no exceptions:

SYNTHESIZED / ORIGINAL (28 in the drawer, + the embedded
default + the modeler's reflective studio): procedurally
generated, original work, made for this shared render pipeline
by Phil Renato + Claude with rendre_assets/tools/make_envs.py
(soft-panel / pinhole / tube / ring / gradient-wash synthesis
in direction space).
  annulus-low-contrast · backwash-cinnabar · backwash-sodium
  · backwash-three-pinholes · backwash-tyrian ·
  backwash-verdigris · cage-room · coved · five-light-studio
  · floorlight-screen · four-light-studio ·
  four-square-mirrored · full-wash-tyrian · low-contrast ·
  paneled · plush-gray · rendre-studio · rimlit-three-point
  · soft-back · soft-light · studio-panel ·
  three-light-studio · three-point-high-contrast ·
  three-point-two-pinholes · top-and-bottom-center-pinhole ·
  tubes · underlit-square · vertical-bands · plus the
  embedded "Rendre Studio" default and the modeler's
  reflective studio image.

PHOTOGRAPHIC, CC0 — Poly Haven (5 in the drawer): fetched
2026-06-06 from polyhaven.com (CC0 1.0 — no attribution
required; given with thanks; disused-warehouse re-encoded
same day to clean a malformed upstream header — pixel data
identical, see _provenance_cc0.json). Per-file source log
ships in
rendre_assets/env/_provenance_cc0.json.
  ballroom            <- polyhaven.com/a/dancing_hall
  photo-studio-sienna <- polyhaven.com/a/brown_photostudio_02
  empty-cell          <- polyhaven.com/a/small_empty_room_3
  snow-wood           <- polyhaven.com/a/snowy_forest
  disused-warehouse   <- polyhaven.com/a/empty_warehouse_01

RASTER, CC BY-SA: NONE SHIPPED. The SEATL "chrome" material is a
procedural mirror finish (no embedded image) — no raster CC BY-SA
asset ships in this build.

TRADEMARKS
-----------------------------------------------------------
Glisten™ and RENDRE™ are marks of Phil Renato. Ideas and
source may travel; the names may not. All other trademarks
are the property of their respective owners. Mentions of
third-party applications (e.g. Rhino, Blender) identify
file-format compatibility only and imply no affiliation or
endorsement.

CONTACT
-----------------------------------------------------------
Phil Renato · renato.design · philrenato@gmail.com
Preferences✕
Auto-rotate when idle
Rotate speed ×
The view drifts slowly after a few seconds without input — touch, drag, or scroll to stop it.
Tooltips
Default render aspect
The aspect every render starts from — Render, Film and Shots all open to this. A safe box shows that frame in the viewport.
Live preview auto-stop
Ray visualization (teaching)
System benchmark
Your scorenot yet benchmarked
Bounce-count override
Advanced dispersion (slower)
Film: interpolate part properties
Recipe in renders
AfterImage in renders
AfterImage: environment layer (slower)
Recipe in movies (experimental)
Bananas Mode (experimental)
Exact surfaces
Surface accuracy px
Material templates
A part or layer whose name holds the text gets the material on every import. Update keeps a material you set by hand.
Test scenes
Open a ready-made assembly
Real assemblies with their materials already on, for interrogating Explodre against something that has actual joints — a duplicated part has none. Each opens as a scene you can edit and re-save.
View
Camera may go below the floor
The limit is the ground plane the studio floor sits on, not the subject — so a low, grazing angle is still yours; only going under it is refused. With this On, the horizon clamp lifts too and the view can tumble all the way over.
Section (cut-away view)
Off by default to keep the toolbar tight — turn this on to reveal ⊘ Section in the VIEW group (slice the model with a plane to see inside it: foam, lattice, shell walls).
Advanced tools
Shell (hollow)
Bend
Twist
Generative builders — Grow · Terrain · MetaText
Animator (keyframes)
Demo · record a 60-second reel
With this on, ▶ Guided tour runs faster and saves a fixed 60-second video of the 3D (a sizzle reel — panels/cursor are overlays, not in the file). Off, the demo plays on screen at a watchable pace (one pass under 3 min).
Off by default to keep the workspace clean — turn these on to reveal their controls (global bottom-bar + per-part inspector, the Grow/Terrain/MetaText builders, and the ◆ Keyframe animator).
Reference image
Trace over a photo
Load a photo to ghost over the stage — compare a real object's proportions against it. It's a tracing aid only: never weighed, never exported, never saved into the scene file.
Reset
Reset everything
Form
▸
Forms
◉ hides a form · double-click a name to rename · ⌘/⇧-click to multi-select · right-click for copy / paste / delete
Select a form — tap it in the scene or the list above — to edit it here. New here? Click a shape in the top toolbar to begin, or press ? for Help.
Operation
Color
Smoothness0.40
Shell0.00
Open face
Bend0
Twist0
Bend/Twist axis
whole body
1.00
0 mm
straight
none
Update the model?✕
A model with this name is already on the stage. Update swaps in the new geometry part-by-part, keeping whatever materials/visibility you've already tuned. Append adds this as new geometry beside what's already there instead.
Turntable✕
Duration — one full 360° turn · s
Frame rate
Camera
Animate the model through your ◆ keys
Frame size
Aspect
Samples per frame
Transparent background
Spins 360° around your model and re-frames for the aspect you pick, so a vertical turn isn't a cropped landscape one. ▶ Preview is the live, fast look; ● Record renders every frame properly. The panels aren't in the video.
Export ABC — animation✕
Mesh samples (24 fps)
Mesh quality
—
IMotion — imported motion✕
Scrub — preview the bake, right here, no render needed · frame 1 / 1
Fit
Range — trim to samples 1–1 of 1
Speed — multiplies the clip's own native rate · ×
Offset — seconds into the shot before it starts · s
plays back automatically with any Shot or Film render, at whatever Fit/Speed/Offset/Range you set here — no separate on/off switch, importing the clip is asking for it to play.
Files✕
Scene
Import a mesh
Detail 48³
Rendre on your phone✕
Rendre is a path-traced renderer built for an iPad or a computer. On a phone it runs a focused set: import a model, drop a material from the library, swap the studio, and render a still.
The Film & Shots camera-move tools want more screen — open Rendre on an iPad or computer for the full workflow.
CORE CONTROLS⌃
SCENE
VIEW
CAMERA
Lens mm
Shift ↕
Shift ↔
LOOK / ANIMATION
QUALITY / IMAGE
or
DEPTH OF FIELD
Aperture off
Focus center
EXPOSURE
EV
IMAGE STYLE
White balance K
Contrast
Saturation
Vignette
Sharpen
ADVANCED / LENS
Bloom
Bloom spread
Chromatic aberration
🍌 BANANAS
starting · 0 samples
Guided tours✕
Start this tour?✕
This tour clears the stage first, so every act starts clean. Save your scene before playing it if you want to keep what's on the stage now.
The tour is over✕
A tour builds its own scene as it goes — a model, materials, lights, an environment and a camera. Put back what you had before it started?
Demo
Batch — item 1/1—
—
A / B compare—
Export & save✕
A finished image comes from ⬇ Render… — PNG up to 4K, plus transparent cutout, backplate, per-part mattes and the contact sheet, all in that dialog. A video comes from ⌖ Shots or ▦ Film under Animate. Bringing it to crit live? Copy a share link — a classmate or the professor opens the exact scene, no download.
Film — animate the render room✕
Keys · 0
Duration — keys spread evenly · s
Frame rate
Preview in the viewport
Frame size
Aspect
Samples per frame
Transparent background
◆ Capture a key · change the camera, lighting or a material · ◆ Capture again — Film morphs between your keys. ▶ Preview, then ⬇ Render video for a QuickTime-ready .mp4. (For a ready-made camera move, use ⌖ Shots instead.)
Shots — camera moves✕
Target
Duration · s
Distance · ×
Weight — light ↔ heavy ·
Azimuth ° · →
Elevation ° · →
FOV ° · →
Light sweep
Scrub the move
Keys · 0
① pick a move above · ② ▶ Preview · ③ ⬇ Render… opens Film to choose settings — you render it there. Distances scale to your model; closing puts the camera back.
Hand off — a GLB for Rhino / Blender✕
What travels: every visible part as a named, welded mesh at real scale (glTF meters — a 20 mm band arrives 0.02 m, true size) · each part's PBR material in Cycles' own vocabulary (color · metallic · roughness · IOR · transmission · clearcoat · sheen · emission) · the camera · the lighting setup as a cited reference — which studio, its rotation / intensity / height, a URL to the actual .hdr, and its license.
What stays behind: the environment image itself (referenced, not embedded — fetch it at the URL inside the file) · the infinite floor (it's analytic, not a mesh) · hidden parts · subsurface amount (no glTF home; the value rides in the file's extras, named) · the scene's editability — this is a mesh handoff for extending the work elsewhere; the re-editable file is ⬇ Save scene.
Open it with Blender (File → Import → glTF 2.0) or Rhino 8 (File → Import). Both read the PBR extensions; what each ignores is listed in the file's extras.caveats.
This render carries two things✕
It has a quick per-light remix AND its whole scene recipe (model, materials, camera, lighting). Which do you want?
PARTS◂
ENVIRONMENT▸
LIGHT RIG + AFTERIMAGE▸
Rotation °
Height
Intensity
Behind the model
Background color
Background image
STUDIOS
MATERIALS▸
LENS
drop a material or studio on the lens
Magnify ×
BATCH▸
0 queued
Time budget
—
QUEUE
Render✕
Size
Aspect
Samples
Samples (exact)
Bounces
Denoise
Transparent background
Shadow-catcher floor
Format
renders off-screen at full size — a live preview appears once it starts
Manifest material
working…