Skip to content

The Editor

Sektor Studio is organized around a central World Scene viewport with docked panels that support it. Under every control is one rule: each edit is a single validated, undoable engine transaction, whether it came from a gizmo drag, a menu, a shortcut, or an AI command.

Viewport

A live DirectX 12 render of your world, presenting continuously through zooms, menus, docking, and resizes.

  • Perspective plus six true orthographic views (top, bottom, front, back, left, right) with matching construction grids and an adaptive 1/2/5/10 grid that cross-fades instead of blinking.
  • Unreal-style navigation: right-mouse WASD fly with scroll-set speed, Alt+LMB focus orbit, Alt+RMB dolly, middle-drag tracking, F to frame.
  • Camera bookmarks: Ctrl+Alt+1..0 store, Alt+1..0 recall, ten per project.
  • Game View (G) hides every editor aid, including their invisible hit targets, without touching your saved Show flags. Shading modes and AA selection render through the same final pass as captures.
  • Camera piloting: fly an authored gameplay Camera from its own lens, undoably.

Selection

Selection is pixel and triangle accurate through one typed hit contract: gizmo, then actor marker, then front-most mesh triangle, then empty space. Cyan preselection shows what a click would hit; repeated clicks cycle overlapping candidates deterministically. Marquee is directional: left-to-right encloses, right-to-left intersects, with replace, add, toggle, and remove.

Advanced selection is engine-owned and never destroys your selection on a miss: All, Invert, Parent, Immediate Children, Descendants, and Matching Model, identical across menu, palette, shortcuts, and AI.

Transform tools

Move, Rotate, and Scale gizmos solve real 3D rays with frozen interaction frames, readable geometry at any DPI, and hover feedback. Rotation offers axis rings, a screen-space ring, an arcball sphere, continuous winding, and a rendered swept-angle readout.

The precision suite is deep because greyboxing lives here:

Tool How
Snapping Translation steps, angle-stepped rotation, scale steps
Surface snapping Drag along real triangles with optional normal alignment and offset
Vertex snapping Hold V: snap the pivot to exact visible vertices
Drop to floor End seats selection bounds on actual geometry
Exact input Type a number during any drag; Enter commits one undo step
Custom pivots Alt+Middle sets a pivot, optionally persistent per object
Duplicate-drag Alt + gizmo drag merges copy and move into one undo
Align and distribute Bounds-aware min/center/max align, equal-gap distribution

Organizing large worlds

  • World Outliner: nested folders, inline rename, drag-to-reparent with world-transform preservation, type filters, and Unreal-style AND / -exclude / +exact search.
  • Groups (Ctrl+G): locked multi-object selection sets with atomic transforms and safe duplication.
  • Visibility: per-actor and per-folder eye toggles, H hide, isolate, show all, all transient and undo-neutral, excluded from renders but recoverable.
  • World Layers: color, visibility, authoring locks, and Event Sheet selectors.
  • World Partition: a configurable spatial cell grid with per-object spatial or always_loaded policy, live residency preview, and per-cell diagnostics.

Trust model

Saves are atomic. A 30-second crash-recovery autosave writes one combined recovery document without ever overwriting your intentional save; recovery is offered, never forced. Undo history captures selection with document state, so undo never leaves stale references. Projects are human-readable, versioned, and diff-friendly.

Automate it

The editor state itself is protocol surface, same as scene content:

{"op":"editor.selection.query","mode":"descendants"}
{"op":"editor.arrange","mode":"distribute_gaps","axis":"x"}
{"op":"editor.visibility.set","mode":"isolate_selected"}
{"op":"editor.camera.set","eye":[12,8,-20],"target":[0,1,0],"viewMode":"perspective",
 "viewScale":1,"verticalFieldOfViewDegrees":50,"flySpeedUnitsPerSecond":12}

Studio's menus, shortcuts, command palette, and AI commands all drive the same engine state, so a human and an AI can hand a scene back and forth without either seeing a stale view.