VkForge: A Vulkan User-End API Implementation Generator for Renderer Development
Project description
VkForge
VkForge (Vulkan Forge) is a Vulkan User-End API Implementation Generator written in Python. It's purpose is to quickly generate the code needed for Graphics Renderer development.
VkForge is the opposite of using a wrapper layer (like SDL_GPU or shVulkan).
Instead of abstracting Vulkan, you use the Vulkan API directly — but VkForge saves you from writing all the repetitive boilerplate by generating it for you, based on your shaders and a simple config.
VkForge does not force any design pattern — you have the same freedom as hand-written Vulkan.
By design, VkForge does not generate an entire renderer — it generates components for you to connect as you wish.
VkForge also provides a list of utility code that makes it quicker to code in Vulkan. If the utility function abstracts away something you want to control, just use the direct Vulkan function.
VkForge Source
The input for VkForge is:
- Shaders: Provide type, location, descriptor sets, and bindings.
- Config: Defines pipeline details and other setup.
VkForge Output
VkForge generates C99 source code for your Vulkan implementation.
Platform integration is done via SDL3.
We are hoping to improve VkForge — see CONTRIBUTING.md.
Feel free to contribute by using it, reporting issues, making pull requests and via othe produtive ways!
Todo
- Add support for Renderpass and earlier versions: Currently only support Vulkan >= 1.3 and Dynamic Rendering.
- Platform abstraction: Allow users to pass a flag
vkforge --platform SDL3with options likeRaylib,GLFW, etc. VkForge will generate the code specific for the platform you want. - Sub-Platform abstraction: I can combined SDL3 as my main platform and then use SDL3_image, stb_image, etc to load images and so on.
vkforge --platform-image SDL3_image. - 3D utility functions: Utility functions specific for 3D rendering
- Extended version utility functions: Extended utility functions provide additional parameters that allow the user to pass pNext and pAllocationCallbacks.
Connections
VkForge Python Package VkForge Github
Purpose
Vulkan is extremely detailed — this is a good thing!
But it can mean tedious and repetitive coding.
VkForge solves this by letting you describe your Vulkan setup in a simple Config file.
A config is short, easy to write, and saves hours of manual work.
Closing
VkForge is free and MIT licensed — contributions are welcome!
I hope you find it useful for your projects.
VkForge is led and maintained by its benevolent leader, Alrick Grandison.
(c) 2025 Alrick Grandison, Algodal
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vkforge-0.5.1.tar.gz.
File metadata
- Download URL: vkforge-0.5.1.tar.gz
- Upload date:
- Size: 44.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d5a4a56da419a0881093e4d3bf26d00a38db2e357194442fd8a12aaec7c84b9
|
|
| MD5 |
31260de864efb1b19c6f37a2307ba3f3
|
|
| BLAKE2b-256 |
636ff77ca29dbc33baa5d0b2317e7c57c077ea7dbeb1d3199f00ddecdf763e81
|
File details
Details for the file vkforge-0.5.1-py3-none-any.whl.
File metadata
- Download URL: vkforge-0.5.1-py3-none-any.whl
- Upload date:
- Size: 47.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33d1f9d38a57b929f25e584a4ffc1b153256726fbab4c013b47695186765c8f8
|
|
| MD5 |
3400cdedbc8b1a07ed0b30dfff1c263f
|
|
| BLAKE2b-256 |
e5313921e9e0fe80f7c233f7d1392e8772f6599f0c618368592bb2ccc420e5ba
|