Materials and Geometry
Edit reusable materials, textures, imported hierarchies and 3D lights.
Build a scene around your lighting#
Choose Materials or Modeling in the workspace bar, or open a panel from Panels. Geometry, scene materials and 3D lights feed Render Preview and its screenshots. Export HDRi exports the HDR lighting environment, not the 3D scene.
Reusable materials#
Materials contains shared surfaces. Click + Material in the panel header and choose its type before anything is created. Generic names begin at Material 1 and increase across additions, renames, deletion and project reload. Preset additions keep their descriptive preset names. Select a card to edit Material Properties. Selecting a card does not assign it or switch your active panel tab. Click the selected card again, use Deselect material (×), or press Escape within Materials to clear it. Material Properties then shows selection guidance. Geometry and Object Layer selections do not replace the selected material.
- Drag a card onto a visible object in Render Preview or a row in Geometry Tree. A gold outline identifies the drop target. Escape cancels the gesture.
- Alternatively, select an object, select a material, then choose Assign material. This is also the way to assign between separate studio windows.
- Drag the grip beside a material to reorder the list. Its badge shows its core type, such as Physical, Toon or Matcap.
- Right-click a material to edit, rename, assign, duplicate, delete, or Select objects using this material. The row trash icon also deletes it. Duplicate before making an independent variation.
- Choose a material Type before adjusting its contextual controls. Mesh, line, point and sprite materials require a compatible object. Unassign a material before changing to a different object family.
The editor supports all 17 concrete material classes in its Three.js WebGL renderer: Physical, Standard, Phong, Lambert, Basic, Toon, Matcap, Normal, Depth, Distance, Shadow, Shader, Raw Shader, Line Basic, Line Dashed, Points and Sprite. WebGPU/TSL node materials require a different renderer and are not included.
Physical surfaces offer transmission, IOR, thickness, attenuation, dispersion, clearcoat, sheen, iridescence and anisotropy. These are real-time material effects; they do not add path tracing or caustics. Line width is commonly limited to one pixel by WebGL devices. Shadow materials require a shadow-casting scene light and a receiving object. Distance materials customize point-light shadows; they retain the object’s source/preview surface in the beauty view.
Expand Texture channels to load PNG, JPEG or WebP images into the channels supported by the selected type, adjust repetition, replace or remove a texture. Color textures use sRGB; data maps use linear values. Textures must be at most 8 MB and 8192 pixels per dimension. Embedded budgets are 32 MB per material and 64 MB per scene, measured as encoded data. Loaded textures are included in saved projects.
Custom and Raw GLSL materials provide vertex and fragment editors. Changes reach the renderer only with Apply shader. Reset shader restores a working template. The editor supplies baseColor and opacity uniforms. Raw GLSL declares its own attributes and matrix uniforms. Shader errors appear as a notification; reset or correct the source to recover.
New reusable materials default to Both sides. Existing explicit face-side choices and imported source materials retain their settings. Face-side controls remain in Transparency & rendering.
Every object assigned a material updates together. Deletion is blocked while a locked object uses it. Removing an assignment restores the original imported or inherited material; unassigned authored geometry uses the document's legacy preview fallback. Imported multi-material meshes retain their original face assignments until an explicit whole-object override is applied.
Object material preference and swatches#
Drawable objects in Geometry Properties have a Material assignment section. Material Properties edits only the independently selected reusable material:
- Use Layer Material follows the object's layer assignment.
- Use Parent Material follows its geometry parent, including a Rhino instance parent.
- Chosen Material uses an explicit compatible assignment. Click the effective material name to select its reusable surface for editing. Point clouds require Points materials, lines require Line materials, and sprites require Sprite materials. If no compatible materials exist, Create point/line/sprite/mesh material creates and assigns one in a single edit. Source / preview (no override) is an explicit fallback rather than an empty dropdown. Instance roots also accept assignments for members using Parent inheritance. Other non-drawable groups have no material dropdown; select their drawable children.
Layer and Parent show the effective material name as a clickable link. Click it to edit that shared material. An explicit choice remains intact when layer assignments change. Older project files retain their legacy assignment precedence until a preference is chosen. Missing compatible assignments use the source/preview fallback.
Geometry Tree shows the effective material swatch immediately before the lock icon. Its circular indicator is borderless in both themes and retains its material-source badge. Click it to select that material; your active panel tab stays unchanged. A check badge means an applied object material, a return-arrow badge means inheritance from parent geometry, and stacked layers mean an object-layer material. An empty/slashed indicator means source or preview material. Object Layers has a separate material swatch with edit and assignment actions; the rectangular swatch still edits display color. Rhino material-table and layer/object/parent assignment metadata are imported into these controls.
Pick a color#
The shared picker provides Hex, RGB, HSL and HSB modes, compact sliders and clearly boxed numeric inputs. My Palette saves up to 40 named colors with rename and remove controls; Presets organizes neutral, accent and recent colors. Existing saved colors carry forward. The picker fits short windows with scrollable content.
The base Color of a material with Enable transparency selected also exposes Opacity and alpha Hex values. Other material tints and all light colors remain solid. Saved alpha is ignored by solid-color controls. Cancel restores the opening color and opacity; Done keeps the grouped edit. See Choose and save colors for modes, storage and keyboard controls.
Geometry and hierarchy#
Use + Geometry in the Geometry Tree header to import a model with resources, create geometry, or add any of the seven scene-light types. The menu includes icons and a link to supported formats and the import guide. Geometry offers the same mesh primitives, including Sculpture (the familiar knot) and Teapot, plus groups, line box, point cloud and sprite. Sculpture and Teapot are independent scene objects with transforms, material assignment and Undo/Redo. They are retained in saved projects. Teapot starts with a material that shows both sides of its lid and spout. Add an object, then select it in Geometry Tree. Expand or collapse branches and search names; matching descendants retain their parent context.
- Parent Geometry and Object Layer distinguish parentage from layer membership. Position, Rotation and Scale are local to the parent. Rotation uses degrees; lights omit irrelevant rotation/scale controls.
- Drag one or more selected row grips into a group to change its parent, to a row edge to reorder, or to Scene root to unparent. World placement is preserved. Authored objects stay outside imported source branches; imported objects can move within their source model. Animated or rigged branches, cyclic moves and unsafe transform conversions are rejected. The source-model root stays attached to its subject wrapper.
- Imported layer names, nested Rhino block instances, object names and local transforms remain in the tree. A B badge identifies a block instance. Block copies share decoded geometry while keeping independent transforms and material assignments.
- Imported objects keep source units. Their subject wrapper normalizes the overall model for the preview. Imported mirrored and sheared transforms are preserved; transform a parent when the gizmo explains that a source transform is unsuitable.
- Hide/Show affects a branch. Locked ancestors protect descendant edits, assignment and deletion. Delete removes a branch; Undo restores it.
- A parent material flows to compatible children set to Use Parent Material. Chosen Material overrides inheritance; Use Layer Material explicitly follows the object layer. Lights, cameras and bones do not accept surface materials.
- Ctrl/Command toggles individual rows; Shift selects a range. Object Selection shows shared or mixed layer/material values and provides relative Move, Rotate and Scale, visibility, lock and deletion actions for multiple objects. Transform supports shared move/rotate/uniform-scale handles for multiple objects.
- Right-click to rename, select a branch, find its assigned reusable material, select other objects using that material, or find related objects by layer. Double-click a name to rename it.
- Expand All and Collapse All are separate and enabled only when they can change a branch. Compact full-width rows use subtle depth guides and aligned action buttons.
- A plain click selects a row; Command/Ctrl-click toggles it. Use Orbit (V/O) in Render Preview for click/Shift-area selection and Transform (W/E/R) for universal handles.
Object layer membership is separate from geometry parenting. Use Object Layers for Rhino layers and current-layer controls. Layer States editing is temporarily disabled; existing saved states are preserved.
See model import formats and object transforms.
3D scene lights#
Add a Point, Spot, Directional, Rectangle Area, Hemisphere, Ambient light or Light Probe from Geometry Tree → + Geometry → 3D scene lights or the Geometry panel. Each type has a distinct icon and a selectable 3D guide in Shaded view. Symbols use thicker screen-space strokes and colored emitter bodies. In Rendered view, unselected lights show illumination only; selecting a light reveals its editing guide, without a solid emitter body. Select it there or in Geometry Tree for light-specific settings in Geometry Properties. Show light guide controls its editor symbol without turning off the light.
Intensity has a nonlinear slider for fine control near zero, 0.001 numeric increments, a slider range of 0–1,000, and numeric entry up to 100,000. Point and Spot lights expose range and falloff. Spot lights add cone angle and penumbra. Rectangle Area lights expose width and height and illuminate Standard/Physical materials; this renderer does not support area-light shadows. Hemisphere lights offer sky and ground colors. Light Probes expose nine RGB spherical-harmonic coefficients for diffuse lighting.
Point, Spot and Directional lights can cast shadows. Enable Cast shadows and expand Shadow settings for resolution, bias, normal bias and near/far clipping. Directional lights also offer shadow coverage. Higher resolution costs more graphics memory.
Spot, Directional and Area lights offer Use object rotation (local −Z) or Aim at target. Target X/Y/Z use the light’s parent coordinates. In Render Preview’s Transform controls, Position / Target switches the gizmo between the emitter and aim point. Arrows and planar pads move the target live; Escape cancels and release commits one edit. Aim at origin points to that parent’s origin. New lights aim toward the scene origin from an offset position; existing lights keep their rotation-based aim. Hemisphere sky direction follows object rotation; moving its guide does not change that direction. Ambient and probe illumination has no distance falloff. Lights can be grouped, hidden, locked, deleted and restored like other scene objects.
Use Rendered display mode to see scene illumination. Unlit materials and diagnostic display modes do not show these lighting effects. Ambient, Hemisphere and Probe lights contribute diffuse illumination, so fully metallic surfaces need direct specular lighting or an environment. New mesh primitives start with a neutral nonmetallic surface; imported and explicitly assigned materials retain their appearance.
The guides are editor overlays and stay out of clean screenshots. These lights illuminate the Render Preview scene. HDR light layers in Light Stack remain the source of exported HDR environments.
History and limits#
Scene edits and HDR light edits share Undo/Redo in editing order. Importing a model is one reversible edit, including its source file, hierarchy and chosen Y-Up/Z-Up orientation. Failed imports leave the previous model intact. Each open document retains its own scene and history.
The beta supports 5,000 scene objects, 256 authored materials and one imported source package per document. Model import allows 4,990 source nodes and 240 nesting levels. There is no topology editing, CAD boolean modeling, source-file writeback or scene export. Model formats and advanced material effects have the limits described in their help articles.
Save Project includes scene state, material textures, the source model package and graph positions. See multiple projects, Node Graph and workspace layout.
Contextual Properties#
The additional Contextual Properties panel follows the last selected geometry, material, light layer, object layer or Light Group. It exposes the same editable controls as the corresponding dedicated inspector. Dedicated panels remain available and retain the active tab; selection never automatically switches or opens a panel. Select a new item to change the contextual target. Selecting an Object Layer updates Layer Properties and Contextual Properties without changing Material Properties. For multi-object and multi-layer selections it shows the appropriate batch editor.
Material indicators in Geometry Tree and Object Layers keep an equal width and height so the swatches stay round in narrow rows.
Instances#
Use Instances to manage imported Rhino definitions, nested/direct placements, linked duplicates, replacement, Make unique and explicit shared-content edits. The manager is a dockable panel and a tab beside Geometry Tree. Ordinary viewport picking selects outer placements; shared members are protected from accidental independent edits.
Select several materials#
Click a material, Shift-click for a range, or Ctrl/Command-click to toggle individual materials. Ctrl/Command A selects all materials while the material panel is the editing context. The common trash icon and right-click menu delete the selection in one undoable scene change. If a material is used by a locked object, the bulk delete fails without deleting the others.
With several materials selected, Material Properties and Contextual Properties offer a common base color, opacity, select-using-objects action and bulk deletion. Names and material types are preserved. Shader output still depends on the shader's use of its color and opacity uniforms.
Assign under the pointer#
Drag a material swatch onto geometry in Render Preview. A yellow bounding box highlights only the target object, and a caption names it; the whole preview is not outlined. The release location determines the final target. Dropping over empty space does not assign a material.
Instances ask whether to change only the target placement or all copies of its definition. For geometry inside a group, choose only the hit object or all compatible group contents. Group changes respect object locks and material families. The same scope flow is used for Geometry Tree drops. See Instances for inherited versus explicit member materials.
Geometry Tree has a Frame icon immediately after the material control, a right-click Frame action and a common selected-object delete icon. Object Layers also has a common delete icon, which removes selected layers while keeping their objects and protecting the current layer.
Material assignment choices and framing#
Dropping a material onto an instance or group opens Assign material, with a question in the dialog content. This instance / This object is the primary action when available; All instances / Whole group is a separate secondary button. Cancel or the close button leaves the assignment unchanged. An entire-group target offers Whole group as its primary action.
In Object Properties, Frame is a button with a yellow focus icon beside the object's name. The geometry/instance type appears below the name. Long Geometry Tree lists keep their compact Previous/Next navigation below the scrolling rows.
Dynamic Ground#
+ Geometry → Dynamic Ground creates the scene’s single automatically fitted floor. The same object is available under Scene Settings → Dynamic Ground in Advance. Both show the same Geometry Properties controls and existing scene-material assignment. Repeated creation reuses the object; visibility, connection, locks, deletion and Undo use scene state. Use ordinary Plane for extra fixed floors. See Dynamic Ground controls and migration.
Export Scene#
Use Studio menu → Export Scene or Scene Settings → Export Scene. Both share options for visible scene or selected objects and including Dynamic Ground. GLB supports optional Draco compression and excluding textures. It exports a static posed scene; it is not an animation or editable authoring-project archive.
3DM offers Rhino 5, 6, 7 and 8 versions, Save small, Save textures and Save geometry only. Available original Rhino geometry is reused with its scene transform; other displayed meshes, curves and points are written as supported geometry. Save small removes cached meshes from supported native Breps/extrusions. Geometry only omits materials and user data. Texture embedding currently covers base-color maps, at up to 4K per image, and Rhino materials approximate preview PBR appearance. Shared definitions are not preserved as a complete native authoring hierarchy. Keep the original 3DM and .lumen project. Opening these exports in each desktop Rhino version remains a separate acceptance check.
Assign Material uses readable body text and explicit scope actions. Material, object-layer and instance list selection icons select the corresponding objects without changing their assignments. Instance row actions remain beside the truncated name; metadata and description occupy the next row. Model Orientation emphasizes source filenames and uses compact Y-Up/Z-Up choices.
Password-protected GLB export#
In Export Scene, choose GLB and enable Password encryption. Enter and confirm a password of at least 10 characters. The result is a .glb.zip archive using WinZip AES-256 encryption, containing a standard GLB. Extract it with an AES-compatible archive application before importing it into a 3D tool. The GLB specification itself has no password flag. Draco compression and texture exclusion can be combined with archive encryption. Passwords stay in the current export session and are cleared after successful export; they are not stored in projects. There is no password recovery, and a decrypted GLB is an ordinary editable file.
Diamond material · beta#
Choose Precious Materials → Diamond, or Create Material → Diamond · internal refraction. Assign it to a faceted stone using the existing material assignment controls. Existing imported glass and metal materials retain their appearance until you assign another material.
In Material Properties, Diamond optics controls index of refraction (2.417 by default), diamond dispersion (0.020), internal bounces (6), body absorption (1) and environment strength. A white body color keeps transmission neutral; a colored body absorbs other wavelengths. Increase dispersion for stronger color separation or set it to zero. More internal bounces can improve light paths through the stone at greater GPU cost. The available range is 2–12 bounces.
The material uses the separate Gem Environment when loaded and enabled, otherwise the current Light Stack HDR environment, including its rotation. It traces approximate internal reflections and refraction through the stone; direct scene lights do not illuminate this shader. It is an opaque optical surface, with no alpha, texture or custom-GLSL controls. SSR can reflect the diamond onto nearby visible metal, but does not replace the diamond's own reflections.
Use closed, convex, static faceted geometry with outward faces. Concave, open or overlapping surfaces are unsuitable. A shared cut uses one cached facet map across its instances. The preview traces up to 16 distinct visible cuts within a 256 MiB facet color-map ceiling; additional cuts and deforming meshes use simple environment refraction. These approximations do not simulate caustics, inclusions or physically exact spectral paths. Quality and speed depend on geometry, lighting, view size and the graphics device.
Save Project retains the material and its controls. Export Preview and animation capture the displayed optics. GLB and 3DM scene exports approximate the Diamond material with a physical transmissive surface; the internal tracer does not travel with the model. Export HDRi continues to export lighting only.
Gem Environment and gemstone controls#
Open Scene Settings → Gem Environment to load a separate 2:1 .hdr or .exr for gemstones. The file and its controls belong to the current document and travel with saved .lumen projects. Diamond, Ruby, Emerald, Sapphire and Citrine presets use the Diamond material. Imported materials remain unchanged until you assign a gemstone material.
The scene Light Stack continues to light metals and other surfaces. A loaded, enabled Gem Environment lights gemstones even when scene environment lighting is disconnected. Disable or remove it to use the Light Stack again. This does not change exported HDR lighting maps.
- Intensity / Gamma: adjust gem radiance independently. Gamma is applied to linear HDR values before intensity; 1 is neutral.
- Rotation X/Y/Z: orient the lighting in world space. Optional camera lock makes it follow the camera.
- Scale U/V / Offset U/V: enlarge, tile or translate the panorama. Repeat is always on; a scale below 1 repeats the pattern more often.
- Diamond optics: IOR, dispersion, bounces, body absorption, separate red/green/blue absorption, internal exposure, contrast, saturation, internal roughness, black point, escape chroma, energy and absorption floors, ray energy cutoff, reflectivity color/strength/boost, and dispersion exit/depth budgets are saved per material. Contrast and saturation are neutral at 0.5; higher internal roughness softens internal reflections.
Start with six bounces and two dispersed exits. Increasing the ray energy cutoff can end weak paths sooner. More bounces are not always visibly better. Black point can reduce a pale interior, but excessive values crush detail. Surface reflectivity color is independent of the gemstone body color.
Repeated stones sharing a cut and material are batched for rendering while remaining separate selectable objects. Auto uses 512-pixel facet maps for up to four distinct cuts and 256 for larger collections, with up to 16 visible cuts. Explicit material quality can increase this within the shared budget. These are bounded, approximate internal optics for closed convex stones, not caustics or a full spectral path tracer. Scene exports retain the physical-glass approximation.
Gem Environment controls appear only while Use Gem Environment is on. The upload card shows a tone-mapped panorama, filename and original/preview dimensions. Replace or remove the file without changing the Light Stack. Intensity, gamma, rotation, scale and offset use sliders with editable numeric values. Disabling gem lighting keeps its file and settings for later use. The Gem Environment section reset restores its controls; Reset All Scene Settings includes them and retains the uploaded file.
Gemstone roughness during motion#
Diamond Internal Roughness changes internal ray directions. Temporal anti-aliasing accumulates varying samples after orbit stops; Gem Roughness on Motion and Gem Environment Mip on Motion in Scene Settings → Anti-aliasing control the moving appearance. The material retains its authored roughness. This is an approximate closed-convex-cut shader; it does not provide caustics or spectral path tracing. See Temporal anti-aliasing.
Transparent surface catcher (beta)#
Create a material and choose Catcher · shadows & reflections, then assign it to a plane, disc or other mesh. The surface itself becomes transparent while it catches shadows and scene reflections. For Dynamic Ground, choose Geometry and Material and assign the catcher material.
Use Reflections, Roughness, Shadow strength, Shadow spread, Refraction, IOR, Diffuse bounce, Edge fade and Progressive samples. Start with 32 samples; 8 settles faster and 128 takes longer. Camera, geometry, material and lighting changes restart refinement. A settled catcher reuses its image; image and animation exports finish its sample budget even when Temporal AA is off.
Flat receivers use a mirrored scene capture, including objects outside the main view. Curved receivers, refraction and diffuse bounce use what is visible in the current view and can lose information at screen edges or behind objects. Refraction is a thin-surface approximation; diffuse bounce is a color-transfer approximation. This is a compositing material, not path tracing, volume transmission or caustics. Overlapping catchers do not recursively reflect one another. Edge fade uses the geometry's UV boundary, with circular fading for native discs; arbitrary imported UV layouts may fade differently.
The first four visible flat catchers receive a mirrored capture; additional catchers use screen-space reflection. Catcher images use 75% of the render dimensions, capped at 1024 pixels on the longest side. This also bounds export detail. Solid, gradient, template, environment and transparent backgrounds remain visible through uncovered areas. Transparent PNG exports retain the caught shadow/reflection alpha. Final visual acceptance on the supplied jewelry scene and Safari/Windows/touch checks remain pending.
Reflections near contact#
On flat catchers and mirrored PBR floors, Roughness now softens reflections according to the reflected object’s distance from the surface. Contact stays sharper; raised parts produce a wider blur. This follows the receiver and camera when you orbit, including orthographic views. Set Roughness to zero for a sharp mirror.
This is a depth-based, filtered approximation of glossy reflection, not Light Tracer’s path tracing. Blur is bounded to keep refinement affordable; depth discontinuities, transparent objects that do not write depth, capture edges and very rough surfaces can still show differences. Existing catcher sample and capture limits apply.
Diamond close-up quality#
Under Material Properties → Diamond optics → Map Resolution, choose Auto · Balanced, 256, 512, 1024 or 2048. Start with 1024 for close-ups. This controls the internal facet lookup, not the Gem Environment HDR or screen resolution. The shader stores facet plane equations to reduce internal steps caused by reconstructing planes from radial distances.
Color storage per cut is 3, 12, 48 or 192 MiB respectively, with additional depth and driver memory. Instances sharing geometry reuse the same map. When materials share a cut, the highest explicit request wins; Auto applies if none is explicit. The renderer lowers requests when the GPU texture limit or 256 MiB shared color-map ceiling would be exceeded. The existing 16-cut limit remains. Settings travel with the material in .lumen projects.
Keep Temporal AA enabled to smooth remaining screen-pixel edges. Increasing map resolution can reduce lookup artifacts but does not guarantee perfect internal edges at unlimited magnification; this remains an approximate convex-gem tracer. Raising Internal Roughness softens the material itself, so it is not required as an aliasing workaround. This control affects the interactive diamond shader.
Map Resolution uses a compact row with the label on the left and dropdown on the right. The dropdown retains per-cut memory estimates; the selected value uses a shorter label.
Use the troubleshooting guide to check the common causes and prepare a useful issue report.
Troubleshooting