I'm Anton Oreskin, a software engineer and open-source maintainer. I build applications and their reusable foundations in the V programming language: games, hardware-accelerated video, GPU interoperability, memory tools and a development environment for Kakoune.
torus_trooper is now public: a free
tunnel-racing arcade shooter inspired by Kenta Cho's original, with its own
spacecraft, courses and Vulkan presentation for Windows and Linux.
- Normal, Hard and Extreme difficulty, high scores, and unlockable starting levels.
- Customizable keyboard and controller input, graphics settings and audio levels.
- A replay library with custom names, sorting and
.ttrimport/export.
Download for Windows or Linux. A Vulkan-capable graphics driver is required; the Linux package needs glibc 2.38 or newer (for example Ubuntu 24.04). macOS is not officially supported.
Explore the gameplay preview and controls, source-build instructions and design guide.
vlang.kak combines VLS/kak-lsp language
features with project navigation, diagnostics, testing and local GDB debugging.
Managed setup and updates preserve personal settings. The README includes a
recorded IDE walkthrough and documents Linux setup, recovery and limitations.
| Layer | Project | Purpose |
|---|---|---|
| Application | v_vulkan_video |
Hardware-accelerated H.264/MP4 playback and Vulkan presentation |
| Video formats | h264 · minimp4 |
Bitstream syntax, parameter metadata and MP4 container access |
| UI and windowing | imgui · glfw |
Dear ImGui/ImPlot and focused GLFW bindings |
| Resource management | vulkan_memory_allocator (vkmemalloc) |
V-native, budget-aware memory placement, block suballocation, upload rings and diagnostics |
| Vulkan API | vulkan |
Generated Vulkan and Vulkan Video bindings with an opt-in ergonomic API |
| Generation | v_vulkan_bindings |
Reproducible generation from Khronos vk.xml |
The vulkan module keeps the complete generated API accessible while adding
opt-in typed lifecycle, device, queue, memory, buffer and command-pool helpers.
See its releases and compatibility notes for the current registry and compiler
matrix.
The video player's Linux prerelease adds current-stack integration, H.264 correctness fixes and hardware decode comparisons against FFmpeg. It requires a driver with Vulkan Video H.264 decode; Windows hardware playback remains unverified. See each project's platform notes rather than assuming every application supports every CI target.
| Layer | Project | Purpose |
|---|---|---|
| Module | opencl |
Generated OpenCL 1.0–3.0 API plus typed buffers, images, SVM, events and kernels |
| Generation | v_opencl_bindings |
Registry-driven generator, validation pipeline and canonical source |
| Interop example | opencl/examples/vulkan_particles |
OpenCL compute with Vulkan presentation, shared memory and semaphore synchronization |
The Vulkan particle example uses zero-copy external-memory interoperability on UUID-matched devices when the required extensions are available, with a portable host-staged fallback.
memory provides checked object and slot
pools, plus range, linear, ring and buddy allocators for V. Its general-purpose
core does not depend on Vulkan; synchronized range and buddy variants support
shared allocation metadata. The V-native Vulkan allocator uses this core for
GPU block suballocation; it is not a binding to AMD's Vulkan Memory Allocator.
Alongside the public projects, I develop host: V-based web and email services
running oreskin.de and my email on my own Ubuntu VPS. The work includes
HTTP/HTTPS, SMTP/IMAP, certificate management, automated website deployment,
monitoring and tested encrypted backup and recovery.
The source remains private during extended stability and interoperability testing of these critical services. No publication date is set. See the portfolio overview for context.
v_imgui_examples— tested GLFW/Vulkan demo, widget gallery, ImPlot dashboard and Android examples.
Each project README documents its supported scope, native dependencies and the shortest path to a working build.
Windows builds are native unless a row explicitly calls for WSL. A passing binding or package build establishes build compatibility; device extensions and interactive graphics need separate runtime validation.
| Projects | Windows evidence and setup | Linux evidence and setup |
|---|---|---|
| Torus Trooper | Release package, simulation/runtime tests and Vulkan probe; source builds use the documented V3/MinGW toolchain | Release package, simulation/runtime tests and Vulkan probe; source builds use the documented compiler and distribution packages |
| Vulkan Video player | Native builds, player tests, package checks and device enumeration; hardware H.264 decode remains unverified | Native builds and tests, plus hardware decode comparisons; requires Vulkan Video H.264 driver support |
| ImGui and examples | Native library/demo builds and packages; CMake, Visual Studio C++ tools and Vulkan SDK | Native builds and rendering smoke tests; CMake, distribution graphics packages and Vulkan runtime |
| Vulkan, GLFW, VMA | Binding/helper tests and native compile probes; matching SDK and native libraries are required | Binding/helper tests and runtime probes; matching development packages are required |
| OpenCL and its generator | Loader ABI compilation; OpenCL development headers and a vendor runtime are separate prerequisites; GPU execution/interop is not established by this Windows compile job | ABI and runtime tests; device capabilities determine whether examples can use GPU/interop features |
| H.264, MP4, memory | Native V test suites | Native V test suites |
| Vulkan generator | Native PowerShell generation entry point and registry-generation CI | Shell generation entry point and registry-generation CI |
| vlang.kak and muacme | Use a Linux/WSL environment for their POSIX tools; no native Windows setup claim | Documented Linux/POSIX workflows |
Use the compiler revisions recorded by each project: the applications currently test different compiler paths, so an arbitrary V release is not a universal replacement. For the game, use the release download if you only want to play. For GPU libraries, check both development dependencies and the installed driver. Historical forks and archived scratch repositories do not carry the same active support expectations as the projects listed above.
The public projects and their documentation remain freely available. If you would like to support continued work on the game, developer tools, bindings, tests and documentation, visit oreskin.de/support.
| Goal | Start here | Role |
|---|---|---|
| Play a game | Torus Trooper | Application with release downloads |
| Study hardware video decoding | Vulkan Video player | Application and implementation guide |
| Build a graphical UI | ImGui and examples | Library plus gallery, dashboard and platform examples |
| Use graphics or compute APIs | Vulkan or OpenCL | Published modules for applications |
| Update generated API declarations | Vulkan generator or OpenCL generator | Maintainer tools; regenerate before publishing |
Start with each project's README for its supported platforms and setup path. Generated bindings expose an API surface; the installed driver still determines which GPU features are available at runtime.