The structure behind the rays
An acceleration structure determines which geometry a ray visits and how much work the traversal performs. Its construction cost, memory requirements and ability to handle changing scenes are part of the frame budget too.
Traverse’s research covers both the algorithm and its implementation environment. A builder that performs well in isolation still has to fit the driver, synchronisation model, scratch-memory budget and workload of an application.
A playground for builder strategies
We built the Breda AS Playground to stop comparing builders on paper. Builder algorithm, rebraiding, sorting and QBVH conversion are all switchable while the scene is running, so PLOC++ two-step against another builder, or Onesweep against a different sort, is a change you make and watch rather than a result you rebuild for. Extended Morton codes, fused instance nodes and the agglomerative treelet size and reorder iterations are exposed the same way.
Each choice is answered immediately in three places. BVH statistics report the BLAS and TLAS the settings produced, down to inner and leaf node counts, the QBVH conversion and SAH cost. The frame breakdown gives GPU timings per command buffer, so a build that looks good on paper shows what it actually costs to produce. Tracing statistics histogram the ray-box and ray-triangle tests, with the average, the most common count and how many pixels ran past the end of the histogram.
The viewport closes the loop. Rendering primary rays as an intersection heatmap shows where the traversal work sits, not just how much of it there is, which is usually what tells you whether a structure is wrong in a way the totals hide.
That combination is the point. A builder that lowers SAH cost can still traverse worse, and a cheaper build can simply move the cost elsewhere in the frame. Seeing the structure, the build time and the traversal work against one scene is what makes the trade-off decidable.
Algorithms and implementation
Our driver programme investigated PLOC++ builders, refit, batched builds, treelet reordering and rebraiding. Sorting experiments compared merge sort, a vendor parallel sort and Onesweep. Research also covered the integration and profiling required to assess the result in games.
The work progressed from a clean-slate Breda prototype to TLAS-builder integration, including application-level correctness and bottleneck investigations. Read the project account.

