Anari—come together, over me

Khronos tries to get everybody meet at their house.

In November 2019, open standard API developer and harmonizing industry force, Khronos, enthralled developers and users alike with their proposed data visualization initiative to work on a cross-platform analytical rendering API.

Prior to Khronos gathering the SciViz world, developers working in scientific visualization faced a chaotic, waring gaggle of awkward, conflicting, and confusing plug-ins, interfaces, and wannabe APIs. No one was happy and most people just stayed in their tribal camp and sneered at the outsiders.

The world of analytical data visualization circa 2019–2021.5. (Source: Khronos)

And so, the initial motivation for Anari was to agree upon a common API for ray tracing renderers such as Intel OSPray, Nvidia VisRTX, and AMD Radeon ProRender, saving scientific visualization developers from having to port their engines and applications to multiple proprietary APIs.

The Anari working group used the contribution of Intel’s OSPRay 2.x as the API’s design starting point and Nvidia was quick to join and contribute its Optix API information. The Anari team, composed of members from the key GPU vendors and SciViz software developers, looked at the characteristics of how the various programs structured data and communicated. Slowly, and ever so carefully, they threaded their way through the byzantine and in some cases bizarre constructs looking for points of connection and commonality. And to their credit and determination, crafted a common API 19 months later that is planned to be released in provisional form before the end of 2021. They named their new baby Anari (Analytic Rendering Interface).

Anari API connects visualization and data analytics apps make contact with various alien renderers through a common set of calls. (Source: Khronos)

Anari establishes analytic rendering portability through a common API to describe objects in a scene. The API enables the user to build the description of a scene rather than specifying the details of the rendering process. The rendering details are left to the implementation of the API which can use any type of renderer as a backend, for rasterization as well as ray tracing.

The world of analytical data visualization 2021.6. (Source: Khronos)

The Khronos team says Anari was designed to enable scalable scientific rendering, harnessing the use of state-of-the-art rendering techniques and hardware-optimized renderers, together with interactivity that is crucial for exploratory visualization. And since it is a low overhead API, it provides direct coupling with applications, enabling asynchronous overlap of compute and visualization, exploiting parallel computing techniques. It can operate in-situ for visualization of massive memory-resident data sets, using data in-place when possible.

Hail, hail, the gang’s all here—industry members supporting little Arnie. (Source: Khronos)

Anari supports multiple backends (simultaneously), with varying capabilities. It has runtime querying of capabilities which enable “matchmaking” of application requirements to devices. It can feature profiles for high level feature sets plus queries for specific extensions. And new devices can augment existing “shrink wrapped” application binaries. It will also enable dynamic graphical user and scripting interfaces.

As the design has matured, the potential for Anari to be used widely in the industry beyond just SciViz is becoming apparent. It will be valuable in many verticals, enabling diverse domain practitioners to utilize advanced rendering technologies without having to be graphics engine experts.

Run-time enumeration of Anari devices and features. (Source: Khronos)

Anari will play nice with entities from other universes.

When we asked Nvidia how Anari fits with Omniverse, Greg Estes told us, “We are working on a USD-based Anari backend, creating a gateway for all Anari apps to integrate with and leverage the full power of Omniverse.”

We asked Jim Jeffers of Intel how oneAPI would fit and he said, “When the Anari v1.0 spec is confirmed by Khronos we will document that OSPRay is Anari compliant. So as Khronos SYCL is to oneAPI DPC++, so Khronos Anari will be to OneART::OSPRay. (OneAPI has standard APIs for ray tracing now called OneART—Advanced Ray Tracing.)

Missing from the list of ray tracing apps in the above charts is Chaos Group. When asked about it, they told us they are still exploring Anari. They are also working with Nvidia to support their renderer in Omniverse.

If this interests or excites you, then you should visit the Khronos site. If it impacts your business, you might consider signing up for the Anari Working Group for a voice and a vote in the design of the Anari specification before its finalization. You will also gain early access to alpha release APIs, tools, renderers, and you can fast track Anari for your own renderer or hardware.

Or send Khronos your feedback and requirements of what rendering features are important to your application domain, including what new application domains and use cases would you use Anari for, to [email protected].