https://github.com/dannyarends/dimgui
Another SDL2 + Vulkan + ImGui renderer in the D Programming Language.
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.5%) to scientific vocabulary
Keywords
Repository
Another SDL2 + Vulkan + ImGui renderer in the D Programming Language.
Basic Info
Statistics
- Stars: 8
- Watchers: 1
- Forks: 2
- Open Issues: 2
- Releases: 0
Topics
Metadata Files
README.md
DImGui ✨

Another 3D renderer developed in the D Programming Language, designed for cross-platform compatibility across Windows, Linux, and Android. The core "engine" is inspired by the excellent vulkan-tutorial.com, and leverages SDL2 for robust cross-platform support.
Features 🚀
The engine boasts the following features: - Basic geometries (cube, cone, torus, etc.) and complex 3D objects (FBX, glTF, 3DS, etc.) - Skeletal and key-frame animations - HDR Lighting Engine, Shadows & Normal mapping - Compute shaders for particle engines and texture generation - Shader reflection for UBOs, SSBOs, and textures - Instanced rendering of objects - GUI windows for settings, objects, textures, lights, and sounds
(Cross-)Compilation ⚙️
This repository includes the necessary SDL2 DLLs for x64 MS Windows, and is in itself a minimal SDL2 android_project for Android Studio. Building the example requires several dependencies, including SDL, Vulkan, ShaderC, SPIRV-Cross, and the Open Asset Import Library. To build the Android version Android Studio and the Android NDK are required. The software has been tested under x64 systems (Windows and Linux) and on arm64-v8a (Android 15).
For building on MS Windows and/or Linux, please refer to the detailed instructions in compilation.md. If you're cross-compiling for Android arm64-v8a using Linux, you'll find the relevant guide in cross-compilation.md.
Build with 🛠️
DImGui is made possible by, and has dependencies on, the following excellent software:
- D Programming Language
- Android Studio
- SDL2
- Shaderc & SPIRV-Cross
- Dear ImGui & cImGui api wrapper
- Open Asset Import Library
Structure 📁
The following folders are interesting, if you're interested in how the repository is structured:
- src/ which stores the D source code
- src/engine main folder for the engine objects
- src/math math functions for vectors, matrices, particles, and the L-system
- src/objects All geometric (renderable) objects are in here
- assets/ Assets used (fonts, objects, shaders, and textures)
- deps/ Dependencies and Windows 64bit runtime SDL2 DLLs for image, mixer, and ttf
Some noteworthy files:
- dub.json contains the D language dependencies, and build instructions
- src/main.d contains the main entry function, and SDL event loop
- src/scene.d contains the code that sets up the example scene
- src/includes.c contains the importC instructions
Contributing 🙌
Want to contribute? Great! Contribute to this repo by starring ⭐ or forking 🍴, and feel free to start an issue first to discuss idea's before sending a pull request. You're also welcome to post comments on commits.
Or be a maintainer, and adopt (the documentation of) a function.
License ⚖️
Written by Danny Arends and is released under the GNU GENERAL PUBLIC LICENSE Version 3 (GPLv3). See LICENSE.txt.
Owner
- Name: Danny Arends
- Login: DannyArends
- Kind: user
- Location: Newcastle upon Tyne - UK
- Company: Northumbria University
- Website: https://www.dannyarends.nl
- Twitter: DannyArends
- Repositories: 53
- Profile: https://github.com/DannyArends
World-class geneticist, Lecturencer, ESPRIT Fanboy, and Associate Professor in Bioinformatics at Northumbria University.
GitHub Events
Total
- Issues event: 2
- Watch event: 8
- Delete event: 4
- Issue comment event: 9
- Push event: 284
- Pull request event: 3
- Fork event: 2
- Create event: 7
Last Year
- Issues event: 2
- Watch event: 8
- Delete event: 4
- Issue comment event: 9
- Push event: 284
- Pull request event: 3
- Fork event: 2
- Create event: 7