Documentation / Systems
Performance & Reliability
Conduit optimizations, performance goals, and batched processing for scale.
Wrengler is built to keep Rhino responsive on large models — through viewport conduit optimizations, batched processing, and careful lock management.
Performance Goals
Design goals, not measured guarantees:
| Component | Goal |
|---|---|
| Conduit draw | Stay within the ~16ms frame budget (60 FPS) |
| Panel open | No freeze on large documents — the index rebuilds in chunks |
| Bridge | Keep the UI thread free; requests time out rather than hang |
Viewport Conduits
Display conduits paint study results — heatmaps and sightlines — on top of your geometry, optimized for large sensor grids and real-time interaction:
- Batched drawing — results are drawn in bulk, so draw cost stays flat as sensor counts grow.
- Dynamic detail — reduced during pan/zoom/rotate, restored when the view settles.
- Pre-computed geometry — built once when results are set, not in the draw loop.
- Snapshot pattern — draw works from a snapshot, so the update thread can replace results without blocking.
- Lock separation — enable/disable never blocks the draw thread or data updates.
Large Documents & Selections
- Panel open — the working index builds in chunks, yielding between them so Rhino stays responsive.
- Many selected objects — geometry is processed in batches off the UI thread; only the latest request's result is kept, and earlier ones are cancelled to avoid backlog.
Engine Verification
Every backend below the seam is checked against the brute-force CPU reference, which is itself verified against closed-form physics. A faster backend is only used because it gives the same answer.
Related
- Sunlight Analysis — live feedback while you model.
- Geometry Grouping — reusable scopes for every study.
- Diagnostics — commands and observability.