Docs

The API, per language

One C ABI under two shared libraries — cadaclysm_capi for reading, meshing and writing, cadaclysm_blacksmith for the modelling kernel — and a wrapper per language over it. The wrappers are open source and ship with the SDK; they share one object model, so every language page has the same sections and the same anchors, and each signature on them is read from the wrapper's own source.

Start

Getting started

Fetch the SDK, load the libraries, add the licence, run the first program — in every language.

Start →
Concepts

How it fits together

Scenes, nodes and placements; borrowed memory; errors; the modelling chain and its frames.

Concepts →
Python

Python API

cadaclysm.py and cadaclysm_blacksmith.py: one file each over ctypes, numpy views for meshes.

Python →
C#

C# API

Cad.cs and Blacksmith.cs over P/Invoke: spans over native memory, IDisposable handles.

C# →
Go

Go API

The cadaclysm and blacksmith packages over cgo, errors as values.

Go →
Java

Java API

Cad.java and Blacksmith.java on the JDK 22 foreign function API.

Java →
Node.js

Node.js API

cadaclysm and cadaclysm/blacksmith over koffi, with typings and async twins.

Node.js →
Rust

Rust API

The cadaclysm-sdk crate, loaded at run time: meshes borrowed for the scene's lifetime, no build script.

Rust →
Swift

Swift API

The Cadaclysm and Blacksmith modules of a Swift package, over the C headers imported as Clang modules.

Swift →
LuaJIT

LuaJIT API

cadaclysm.lua and cadaclysm_blacksmith.lua over the FFI, for LÖVE, LÖVR or a plain luajit: nothing to compile.

LuaJIT →
Godot

Godot API

A GDExtension for Godot 4.4 and later: CadaclysmScene, CadaclysmSolid and the rest in GDScript, with Godot's own types for meshes, transforms and bounds.

Godot →
C

C API

The two headers, cadaclysm.h and cadaclysm_blacksmith.h, and the conventions every call follows.

C →
WebAssembly

In a web page

The Web Reader and Web Pro builds: an ES module with typings, run in a Web Worker, and the WebGL2 viewer beside it.

WebAssembly →
Also

Where the rest is written

The query language has its own page; so do the formats read and written, the blacksmith's operations, the examples in every language, and the licence file. Questions go to the Discord server.