C++

Softskinned platypus

After nearly 9 month of inactivity, the development of softskin is back on tracks. Softskin is a module inspired by tensegrity for godot engine (what else?). Demo video:

3D face tracking (state-of-the-art)

I’ve spend my day testing several face tracking solutions. The idea is to generate data for Godot Engine and control the face of an avatar with mine, for a numediart project. Here is what i’ve tested: OpenPose Obviously, the famous library. Tricky to install: you need cuda toolkit & cuDNN to start compiling. As it

Soft skin

Currently working on a library of skinning called SofSkin. It’s purpose is to make skinning in a different way: less rubberish and more mesh/geometry-oriented. The idea is to use edges of the mesh as springs that tries to recover their initial length by pulling/pushing on the vertices. The lexical field is focused on anatomy, to

Starting godot development with a little help to…

Starting godot development with a little help to Michal Seta on his OSC addon. First impressions are fantastic! Godot’s architecture is prepared with indie programmer in mind: the engine is obviously open source, it is really easy to interact with the core classes of the engine, receive notifications of the main events, and childish to

It has been an hardcore saturday evening i’ve…

It has been an hardcore saturday evening: i’ve struggled with Bullet for 3 hours, and, finally, i’m able to get all bullet events in my code, without having to “manually” asking to each object “are you touching somebody?”. It’s a bit weird, but to achieve this you have to plug a static method on the

Not very sexy but very useful there are…

Not very sexy, but very useful: there are 2 new methods in the bullet wrapper that enables retrieval of an ordered list of the collisions along a ray. The job was super easy, thanks to the bullet lib consistency and documentation. The object to use is AllHitsRayResultCallback. Once processed, it returns a list of bodies

Today certainly one of the less sexy thing…

Today, certainly one of the less sexy thing i’ve ever posted… How to create a unique key out of two pointers in C++? After some investigation and a poor attempt to use boost uint128_t, i found my way using a char array. Here is the code: SomeClass* a = new SomeClass(); SomeClass* b = new

flat network no Z slight Z curvature strong…

flat network (no Z) slight Z curvature strong Z curvature strong Z curvature strong Z curvature After a bit of struggle with the management of a 3d grid, the advantage is there: it’s now easy to generate a road network in 3D, with automatic connection of the streets while generating them. It’s a simple brute

Generation of a 3d grid of cells each…

Generation of a 3d grid of cells, each one of the cells knows who are the surrounding ones. This to speed up searching around the current cell. To generate a unique id for each one of the surrounding cell, and quickly find the current cell in the surrounding cell, i used a python that generates

I’ve learned something really important today an OpenGL…

I’ve learned something really important today: an OpenGL context can be accessed by one and ONLY one thread! See Under what circumstances would glGenBuffers/glGenBuffersARB fail?. And this is the first time I feel annoyed by the singleton approach of Ogre3D. In my asset converter util, I use Ogre object, the MeshManager mainly, to convert xml