  We introduce Proceduray, an engine for real-time ray tracing of procedural
geometry. Its motivation is the current lack of mid-level abstraction tools for
scenes with primitives involving intersection shaders. Those scenes impose
strict engine design choices since they need flexibility in the shader table
setup. Proceduray aims at providing a fair tradeoff between that flexibility
and productivity. It also aims to be didactic. Shader table behavior can be
confusing because parameters for indexing come from different parts of a
system, involving both host and device code. This is different in essence from
ray tracing triangle meshes (which must use a built-in intersection shader for
all objects) or rendering with the traditional graphics or compute pipelines.
Additionals goals of the project include fomenting deeper discussions about
DirectX RayTracing (DXR) host code and providing a good starting point for
developers trying to deal with procedural geometry using DXR.
