Graphics framework written for .NET 7.
Building the project requires the following:
- .NET 7 SDK
- CMake >= v3.20
- A C++ compiler that supports C++17
Additionally, depending on your system, you may need to build and install the following projects to avoid runtime crashes:
- GLFW or
libglfw3
on Ubuntu/Debian - Assimp or
libassimp5
on Ubuntu/Debian - shaderc
- Vulkan-Loader or the Vulkan SDK or
libvulkan1
on Ubuntu/Debian - SPIRV-Cross or
libspirv-cross-c-shared0
on Ubuntu/Debian - cimgui
- Tracy profiler
To build the project, simply run:
# making sure we have all of the submodules up to date
# where $ROOT_DIR is the root directory of the repository
cd $ROOT_DIR
git submodule update --init --recursive
# building libchess
# where $GENERATOR is the build system for your machine
# this is required because the chess AI project relies on my native library
# todo(nora): include prebuilt binaries
cd $ROOT_DIR/Libraries/chess
cmake . -B build -G "$GENERATOR" -DCMAKE_BUILD_TYPE=$CONFIG # required for single-config generators
cmake --build build -j 8 --config $CONFIG # required for multi-config generators
# and $CONFIG is the application configuration (Debug or Release)
cd $ROOT_DIR
dotnet build -c $CONFIG Solutions/code-playground.sln
# after building
# where $ROOT_DIR is the root directory of the repository
# $APPLICATION is the name of the application (e.g. VulkanTest)
# and $CONFIG is the application configuration
cd $ROOT_DIR/Playground/$APPLICATION/bin/$CONFIG/net7.0
# the framework loads the application dynamically
dotnet CodePlayground.Runtime.dll $APPLICATION.dll ...
# alternatively, if the application implements its own entrypoint
dotnet $APPLICATION.dll ...
- VulkanTest: Vulkan graphics test application
- Ragdoll: WIP ragdoll simulation of skinned meshes. Not finished
- MachineLearning: Neural network running in a compute pipeline. Recognizes handwritten digits
- ChessAI: WIP chess neural network - does not work lol