Optimizing wLipSync

When porting uLipSync for the web, the choice for WASM was quickly made. Performance is paramount for audio processing. Especially since the lip sync should run in realtime on mobile devices. However, just using WASM does not automatically mean performance. After porting the C# code to C++, it was time to look for possible optimizations.

Read more

A-Frame Adventures 03 - Projecting textures

Lighting is an important aspect of any 3D scene. When using dynamic lights, there are typically a handful of light types that can be used. In the spotlights today is… the spotlight. With a little bit of effort it can not only illuminate the scene with a solid colour, but project an actual image onto the scene. This allows it to be used as a projector or to give texture to light from a flash light and more. Check out the online demo

Read more

A-Frame Adventures 02 - Fixing Fog

There are many reasons to add fog to a scene. It gives a scene more depth and can be used to create various aesthetics, like a spooky swamp or a morning fog. It also conveniently covers up the far edges of the scene. Luckily A-Frame has built-in support for fog. However there is something wrong with it… In this post we’ll look into the problem and create a fix for it.

Read more

A-Frame Adventures 01 - Locomotion

In VR one can move around by physically moving through the play space. However, virtual worlds easily span a size many times larger than the play space. In those cases an additional mode of locomotion is needed. Common approaches include teleportation and smooth locomotion. In this post we’ll be exploring implementing smooth locomotion in A-Frame.

Read more

Devlog 01 - Warming up

In this series of Dev Logs, I’ll be going over the developments going on within Fern Solutions. This is the very first installment and as the title ‘Warming up’ implies, preparations are in full swing to get started on the first project.

Read more