Properties
Inspector panel for viewing and editing selected object properties and components
🚧
Under Construction
This documentation is currently being developed and will be available soon.
Overview
The Properties panel is located on the right side of the editor with a default width of 350px (resizable). It displays object information, component fields, and custom properties for the currently selected object(s). The panel shares tab space with Settings, Results, and Console panels.
Object Information
- •Header: Object name and type
- •ID: Unique identifier (copyable)
- •Mesh Type: Primitive or custom mesh information
- •Statistics: Vertex/face count for meshes
Built-in Components
Transform Component
- • Position: X, Y, Z coordinates with draggable inputs
- • Rotation: Euler angles or quaternion
- • Scale: Uniform or per-axis scaling
- • Local/World: Toggle coordinate space
- • Reset Button: Return to default values
Material Component
- • Color: RGBA color picker
- • Metalness: 0-1 slider for metallic property
- • Roughness: 0-1 slider for surface roughness
- • Emissive: RGB emission color
- • Emissive Intensity: Emission strength multiplier
Mesh Component
- • Type: Primitive selector or custom mesh path
- • File Path: For uploaded meshes
- • Primitive Options: Subdivisions, segments, etc.
Automatic UI Widget Selection
| Field Type | Constraints | Widget |
|---|---|---|
| Float | min/max defined | Slider |
| Float | no constraints | Draggable number |
| Boolean | - | Checkbox |
| Vector | 2D | Vec2 input |
| Vector | 3D | Vec3 input |
| Vector | 4D + 'color' | Color picker |
| String | options defined | Dropdown |
| String | no options | Text input |
Draggable Number Input
Interactive number input with drag-to-adjust functionality:
- •Click & Drag: Horizontal drag to adjust value
- •Shift: Fine adjustment (0.1x speed)
- •Ctrl: Coarse adjustment (10x speed)
- •Double Click: Manual text entry
Component Buttons
Buttons appear below component fields, styled as centered, theme-aware elements. They execute backend Python functions with loading state feedback during execution.
@button(display_name="Render")
def render_view(self):
"""Execute rendering."""
result = self.perform_render()
return f"Render complete: {result}"Multi-Object Editing
- •Show common properties when multiple objects are selected
- •Mixed values displayed as "---"
- •Edits apply to all selected objects
Collapsible Sections
- •Click header to expand/collapse component sections
- •Expansion state is remembered
- •Smooth animation transitions
Keyboard Shortcuts
TabNext field
Shift + TabPrevious field
EnterConfirm input
EscapeCancel input
Ctrl + ZUndo change
Ctrl + YRedo change
Real-time Sync
- •Immediate Local Updates: For responsiveness
- •Debounced Server Sync: 300ms delay to batch updates
- •Conflict Resolution: For concurrent edits