My name is Arthur Brainville, but I generally use the name of “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 exiting 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 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 other 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!
- 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
- 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
- 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
- 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:
I also contributed some code to various projects
- tinygltf an header-only glTF file loader/serializer https://github.com/syoyo/tinygltf/pulls?q=is%3Apr+author%3AYbalrid
- vl6180_pi a library to talk to vl6180 based I²C IR distance sensors from a raspberry pi in C. https://github.com/Ybalrid/vl6180_pi
- Occasional Ogre3D contributor in the ogre-next project, fixing docs and simplified the initialization of the HLMS subsystem used to generate shader code.