My name is Arthur Brainville, but I generally use the name “Ybalrid” on the internet.
I’m a C++ developer. I’m interested in graphics programming, virtual reality, man-machine interface, and real-time simulations.
I love Free/Open-Source software. You can find my projects and contributions on my GitHub profile
I am currently working on exciting things involving VR streaming and related technologies at a startup called LIV!
My interest and area of expertise include graphics programming (particularly OpenGL/GLSL. Currently toying with Vulkan in my free time too). C++ programming, with a specific interest in applying “modern” C++ construct to make high-level zero-cost abstractions. Low-level operating systems programming on both GNU/Linux systems and Windows. (I am familiar with both the POSIX and Win32 APIs). Human-Machine interfaces, Virtual Reality systems (I worked with both OpenVR and the Oculus VR APIs, I am following work on OpenXR and I am familiar with the 1.0 API. I tested the beta implementation from Oculus).
I also have significant experience writing native plugins for the Unity game engine. And more broadly bridigng native and C# code.
I also dabble in electronics and micro-controller projects.
Project you can checkout
You are probably interested in seeing some concrete work I’ve done? I have done some contract work and some things that I cannot really share, but I also have a number of open-source projects hosted on GitHub. Some exits for the fun of learning and toying around with technology, and others as specific tools that fill a particular niche, and as far as I know have a few users that even contributed back some patches and fixes!
- OpenXR Runtime Manager: Program to enumerate and switch between OpenXR runtimes, on GitHub
- XREW the OpenXR Extension Wrangler
- gltf-insight a gltf file examination tool on GitHub
- Kissnet an attempt at building a “keep it simple stupid” cross-platform socket API in C++17. I wanted a really lean and mean, type-safe, using a buffer of a known length of “std::byte” to represent incoming/outgoing binary data over the network. It supports TCP and UDP over IPV4 and IPV6 and is compatible with Windows, Linux, FreeBSD, macOS and HaikuOS. On the Windows platform, it will automatically manage the initialization and cleanup of the “Windows Socket API”. https://github.com/Ybalrid/kissnet
- Ogre_glTF a plugin for the well known OGRE C++ 3D renderer that permits to load standard GLTF assets. https://github.com/Ybalrid/Ogre_glTF
- BtOgre2 a “glue” library between OGRE and ButtletPhysics. This is a fork of an older project that was compatible only with the 1.x branch of Ogre. I’ve redone all the loading of the basic vertex data and improved the debug utilities. https://github.com/Ybalrid/BtOgre2
- mma8451_pi a C library to talk to MMA8451 based accelerometer sensor boards in C from the I²C bus of a raspberry pi. https://github.com/Ybalrid/mma8451_pi
- SSVK Super Simple Virtual Keypress a tiny C++ library that permits to send global keyboard command to a Windows desktop or a Linux Xorg desktop. https://github.com/Ybalrid/SSVK
- As an ESIEA student, I’ve built the electronics and source code that the POD (Plateforme OmniDirectionel) VR omnidirectional treadmill uses, both for game engine integration and the firmware running on a raspberry pi. This can be found in multiple GitHub repository:
- (archived built that when I was learning about 3D and VR as a student) The Annwvyn Game Engine, an on-going “toy” project of a C++ VR “application development framework” that is compatible with both Oculus and Vive hardware with the same interface. https://github.com/Ybalrid/Annwvyn
I also contributed some code to various projects