A C89 standard compliant, nostdlib (no C Standard Library) Raymarched SDF Modeler running entirely on the CPU.
Warning
THIS PROJECT IS A WORK IN PROGRESS! ANYTHING CAN CHANGE AT ANY MOMENT WITHOUT ANY NOTICE! USE THIS PROJECT AT YOUR OWN RISK!
- Minimal binary size — around 16kb binary
- Zero dependencies — own win32 layer implementation, own OpenGL context creation
- C89 compliant — portable and legacy-friendly
- nostdlib — no dependency on the C Standard Library
- Strict compilation — built with aggressive warnings & safety checks
Download the latest Windows executable for X64 or ARM from the Latest Release:
Clone the repository and build manually. Either GCC or Clang is required to run the build script.
git clone https://github.com/nickscha/sdf_craft.git
cd sdf_craft
win32_sdf_craft_build.batYou can now run the win32_sdf_craft.exe program.
Important
If you have donwloaded the release executeable depending on your platform use win32_sdf_craft_x64.exe or win32_sdf_craft_arm.exe
win32_sdf_craft_x64.exeFor the next release of SDF_CRAFT the following features are planend.
- Sparse cached SDF brick atlas rendering with trilinear interpolation
- Win32 ARM, x64 release build
- Basic Raymarched SDF with Normals, Shadow Mapping, Ambient Occlusion, Specular Highlights
The v0.1 release is an early version and only suitable for learning purpose to see how a basic raymarcher can be implemented on the CPU.
nostdlib is a lightweight, minimalistic approach to C development that removes dependencies on the standard library. The motivation behind this project is to provide developers with greater control over their code by eliminating unnecessary overhead, reducing binary size, and enabling deployment in resource-constrained environments.
Many modern development environments rely heavily on the standard library, which, while convenient, introduces unnecessary bloat, security risks, and unpredictable dependencies. nostdlib aims to give developers fine-grained control over memory management, execution flow, and system calls by working directly with the underlying platform.
By removing the standard library, nostdlib significantly reduces runtime overhead, allowing for faster execution and smaller binary sizes.
Standard libraries often include unnecessary functions that increase the attack surface of an application. nostdlib mitigates security risks by removing unused and potentially vulnerable components.
Without linking to the standard library, binaries are smaller, making them ideal for embedded systems, bootloaders, and operating systems where storage is limited.
Direct control over system calls and memory management leads to performance gains by eliminating abstraction layers imposed by standard libraries.
By relying only on fundamental system interfaces, nostdlib allows for easier porting across different platforms without worrying about standard library availability.
