Previous Post

Vercidium Audio - Interactive Docs

Next Post
Vercidium Audio - Interactive Docs
1 / 6
DESCRIPTION

The new docs site is live at https://vercidium.com/docs, with many new features:

Syntax highlighting, tooltips and links

Full docs for C#, JS and C

Single page app (instant page redirects)

Ability to search through page content

Code Blocks

Code blocks have syntax highlighting and tooltips for C#, JavaScript and C.

Hover over any property or class to view its description. Click to view the full class file:

Language Selector

The new docs site contains full documentation for all C#, JS and C classes and methods.

You can change the current language in the top-left of the site:

Search

Search the content of every page:

Class Markdown Generation

Claude wrote a script that converts C# / JS / C code to markdown, for example the Emitter docs here. This means I don't need to manually update these files - they're always up to date.

It sorts fields alphabetically so they're easier to locate, and converts XML docs to inline comments, which is where tooltips get their text from.

C SDK

The C SDK has received many updates recently and is nearly ready for testing:

Changed from snake_case to vaCamelCase, similar to OpenGL function naming

Added all new ray types (visualisation, ambient occlusion, ambient permeation)

Updated to the new emitter system

New threading system for reduced latency

Many bug fixes and improvements

The C SDK is designed to closely match C#/JS, with a clean API and minimal memory management. See the code below for C# vs JS vs C:

I'm working on a test suite that sets up the same world/emitters/primitives in C# and C, then compares everything:

the position/normal/direction/energy of every ray and every bounce

reverb, occlusion, permeation and ambience energy arrays

processed and EAX reverb results

It compares every bit of data down to floating point precision, to ensures the C SDK is functioning correctly.

For Unity, a .NET Core C# wrapper will be provided for invoking C functions.

Technical

The old docs at https://docs.vercidium.com/ are hosted with Obsidian Publish, which works great but is difficult to customise. I couldn't easily add custom syntax highlighting or tooltips, so I needed a custom solution.

I tried https://quartz.jzhao.xyz/, but it was slow to convert markdown to HTML, and required a lot of effort to customise the styles, sidebar, etc. It seemed pretty heavy overall.

I ended up using markdown-it to convert markdown to HTML, with highlight.js for custom syntax highlighting for each language.

Then came the difficult parts:

tooltips

sidebar and navigation

class documentation sync

single page app routing

Claude Code handled most of this, producing a build.js script that:

does regex magic for tooltips and syntax highlighting

iterates over all the markdown files in my content folder, creates the sidebar and handles single-page redirects

handles conditionals like #if JS, and also conditionally renders ```cs, ```js and ```c code blocks based on the current language

builds a search index for quickly searching through pages

With this build script I can keep my markdown light. Code blocks are conditionally rendered and [[links]] automatically figure out the full URL, e.g. '/docs/classes/emitter'.

It also supports inline conditional rendering, so the correct method is shown for C# / JS / C:

Overall it's pretty easy to use. The output is a standalone HTML file with embedded styles and scripts. I think I'll upload the code to a GitHub repo once it's all done, as I couldn't find any decent self-hosting options.

Next Steps

Software-wise, everything is ready for launch. Admin-wise, we're still held up by a few things (code signing certificate, business info, etc.)

The https://vercidium.com website has also been updated - you can experiment with the raytracing sandbox there. I'll write another post about this when the site is closer to completion. That's all for now - thanks for reading!

vercidium PATREON 2 favs
VIEWS1
FILES6 files
POSTEDJun 9, 2026
ARCHIVEDJun 9, 2026