Replacing a full game engine with a lightweight graphics library sounds modest until the first triangle requires a GPU, logical device, command buffers, swap chain, synchronization objects, shaders, memory management, and a graphics pipeline. That contrast becomes the video's central appeal. Rather than presenting Vulkan as a tidy beginner tutorial, the creator documents his attempt to build a custom rendering library while learning modern low-level graphics programming himself. The result moves from opening a colored window to rendering 3D models, running compute shaders, simulating 100,000 bunnies, porting a fluid simulation, creating C# bindings, and drawing text and crude UI elements—all while openly admitting where the implementation remains experimental or his understanding incomplete.
The early Vulkan setup is dense but handled with sensible restraint. GLFW creates the window and manages input, while VMA and Volk help with memory allocation and Vulkan function loading. The creator explains physical versus logical devices, command buffers, multiple frames in flight, swap-chain presentation, fences, and synchronization without walking through every initialization call. His fence analogy makes the relationship between CPU command recording and GPU execution easier to visualize, and the eventual appearance of a simple background color feels appropriately satisfying after demonstrating how much infrastructure is required merely to draw something. The deliberately ridiculous "window pong" experiment also breaks up the technical material before the project moves into actual mesh rendering.
Getting a green triangle onto the screen opens the door to one of the video's best detours. Instead of immediately progressing through a checklist of rendering features, the creator turns the triangle into a procedural view from an airplane window. Noise at multiple scales generates terrain, thresholding separates land and ocean, Voronoi-style regions create farmland, atmospheric approximations add distance and scattered light, and ray marching through 3D noise produces clouds. He repeatedly describes these techniques as rough approximations and experiments rather than physically exact simulations, which suits the exploratory nature of the project. More importantly, the sequence demonstrates why building the library is worthwhile to him: the infrastructure becomes a playground for graphics ideas rather than an end in itself.
The transition to full 3D rendering exposes the kinds of problems hidden by mature engines. An imported bunny begins stretched, upside down, missing its ears, and suffering from incorrect depth before the creator works through coordinate orientation, aspect ratio, depth buffering, triangle winding, culling, and perspective projection. His explanation of the fourth vertex coordinate and the GPU's perspective division is particularly useful because it connects the strange-looking implementation detail to the practical problem of representing perspective through matrix transformations. The tone remains playful throughout, but the mistakes are not edited away; they become demonstrations of why graphics APIs require careful handling of conventions that an engine such as Unity normally abstracts from the user.
Compute shaders substantially expand the project's ambitions. Instanced rendering first produces a thousand randomly transformed bunnies before the creator adds a CPU gravity simulation and uploads the results to GPU buffers. He then moves the update work onto the GPU through compute shaders, explains thread groups and the need for bounds checking, and tests the system with 100,000 lower-poly bunnies. Porting an older fluid simulation provides a more meaningful validation because it requires several compute stages per frame rather than one novelty experiment. The custom implementation averages around 500 FPS in his test compared with a little over 600 FPS for the Unity version, and he appropriately interprets that result as evidence that his implementation is not yet especially optimized rather than claiming that writing directly against Vulkan automatically produces superior performance.
The C# bindings bring the project closer to the original goal of having a lightweight tool the creator might actually use. Refactoring Vulkan-heavy resources behind handles allows buffers, shaders, and related objects to be exposed through a cleaner API, which is then compiled into a DLL and wrapped in more comfortable C# objects. Porting his existing text renderer becomes a productive stress test because it immediately reveals missing functionality such as alpha blending. That back-and-forth—attempting to use the library, discovering an absent capability, returning to C++ to implement it, and trying again—communicates software-library development more effectively than designing an enormous API upfront. The creator also openly describes the dependency setup as messy and leaves UI sophistication for a possible future library rather than pretending version zero is ready for broad use.
The most instructive failure arrives when changing displayed models crashes the program only some of the time. The creator eventually discovers that resizing a text buffer can release the old allocation while the GPU may still be using it to render an earlier frame. Delaying destruction for several frames fixes that problem, while frequently updated buffers receive separate allocations for each frame in flight to avoid overwriting data still being consumed by the GPU. These are explicitly provisional solutions, and the creator admits that his understanding of synchronization remains questionable. That candor is important: the finished demo can display text, simple UI controls, and several famous 3D models reliably, but the video never confuses a functioning demonstration with a mature rendering architecture.
The main limitation is that the breadth of the project sometimes comes at the expense of depth. Vulkan initialization, memory behavior, shader compilation, graphics pipelines, procedural rendering, projection mathematics, compute dispatch, simulation, C++/C# interoperability, text rendering, UI, and synchronization all arrive within one episode. Experienced graphics programmers may want more rigorous discussion of design choices, while newcomers may find the pace difficult once several unfamiliar concepts begin stacking together. Yet the creator clearly frames the project as an adventure rather than comprehensive instruction, and that framing works. The humor, visual experiments, visible bugs, and willingness to explain only the broad strokes keep an inherently technical subject surprisingly approachable while still showing enough implementation detail to convey why low-level graphics programming is difficult and rewarding.
Pros
- Turns complicated Vulkan concepts such as command buffers, frames in flight, synchronization, pipelines, depth buffering, and compute shaders into understandable practical examples.
- The procedural airplane-window scene demonstrates the creative possibilities of the library through terrain noise, Voronoi regions, atmospheric effects, and volumetric clouds.
- Visible rendering mistakes with the bunny provide useful explanations of coordinate conventions, aspect ratio, depth, triangle winding, culling, and perspective.
- Testing compute with 100,000 bunnies and an existing fluid simulation provides more meaningful validation than stopping after basic triangle rendering.
- The Unity performance comparison is handled responsibly, with the creator acknowledging that his custom implementation is slower rather than assuming lower-level code must be faster.
- C# bindings, text rendering, UI controls, and synchronization bugs expose practical library-design problems beyond simply getting Vulkan graphics onto the screen.
- The creator is consistently clear about rough approximations, temporary solutions, missing functionality, and areas he still needs to understand better.
Cons
- The enormous range of subjects means many technically important topics receive only broad explanations before the project moves to the next feature.
- Viewers unfamiliar with graphics programming may struggle as Vulkan concepts, shader techniques, simulation, memory handling, and interoperability accumulate quickly.
- Several solutions remain deliberately provisional, particularly buffer management, resource destruction, synchronization, UI, and dependency organization.
- Performance testing is limited to the fluid-simulation comparison, so the project does not yet establish how efficient the library is across different rendering workloads.
- The final version is clearly an experimental foundation rather than a polished reusable graphics library, leaving many of the architectural questions for future work.
The creator succeeds less by producing a finished alternative to Unity than by showing why building one is such a productive way to learn: every triangle, bunny, cloud, simulation, crash, and missing feature exposes another layer normally hidden by a game engine. The rapid scope occasionally sacrifices technical depth and version zero remains full of provisional solutions, but clear explanations, playful experiments, honest performance comparisons, and visible problem-solving turn an intimidating Vulkan project into an unusually engaging exploration of how modern graphics software actually comes together.



