Ocean Simulation with FFT and WebGPU

Jerry Tessendorf's ocean simulation meets Tri-planar mapping

 Posted on March 20, 2024  |  16 minutes  |  3229 words  |  Barthélémy Paleologue

Introduction It’s been a few month since I started pondering making a better ocean for Cosmos Journeyer’s procedural planets. To have actual waves moving around and not just a scrolling normal maps would make a significant difference in visual quality. Coincidentally, I was also taking a course on computer animation (INF585) at Ecole Polytechnique, and I had the opportunity to choose my final project. Long stroy short, I decided to implement Jerry Tessendorf’s FFT-based ocean simulation on WebGPU, and this is my project report. [Read More]

Add and customize Cusdis with Hugo

Easy to use but hard to customize open-source comment system

 Posted on February 11, 2024  |  5 minutes  |  940 words  |  Barthélemy Paléologue

Alright, I was looking for an easy way to add comments to my blog. I found 2 popular solutions: Disqus and Cusdis (the names look interestingly similar!). On the one hand we have Disqus, a widely used comment system, but it’s not privacy-friendly and it’s not open-source. Bummer. On the other hand, we have Cusdis, a privacy-friendly free and open-source comment system that has a lot of potential. Comments do not need an account to be posted, it is lightweight and it’s easy to use with hugo… at least in theory. [Read More]

Soft body simulation with HXPBD

HPBD meets XPBD for real-time simulations

 Posted on February 10, 2024  |  21 minutes  |  4272 words  |  Barthélemy Paléologue

I have been making a soft body simulation in C++ for my IMA904/IG3DA class at Telecom Paris, and I thought I could share my project report here! This one is quite light on the implementation details and is more focused on the high level ideas. I added many example videos from the original report to make it more interesting to read! Anyway, here is what you can expect from this article: [Read More]

VR Fails

When immersion goes too far

 Posted on January 27, 2024  |  2 minutes  |  323 words  |  Barthélemy Paléologue

If you ever tried a VR headset at home, you probably know that full immersion can be dangerous for your surroundings. When I was setting up the IGD301 VR project in Unity, I punched my laptop screen very hard with one of the controllers (it survived no worries!). These moments are VR fails, when the immersion make you forget about reality. Here I will present 2 scenarios where immersion can be dangerous. [Read More]

VR With Unity #7

Evaluation of the technique

 Posted on January 27, 2024  |  4 minutes  |  670 words  |  Barthélemy Paléologue

In the previous article, we developped a selection technique for a VR supermarket. Here is the result we achieved: You should probably read the previous article first: https://barthpaleologue.github.io/Blog/posts/vr-with-unity-6/ Today’s blog post is all about evaluation. We will see how we can evaluate a selection technique, and how we can use the results to find ways to improve it. Evaluation Before we start evaluating, we should ask ourselves what is it we want to evaluate, which metrics do we use? [Read More]
VR  Unity  C#  IGD301 

VR With Unity #6

The final project

 Posted on January 21, 2024  |  16 minutes  |  3381 words  |  Barthélémy Paléologue

Okay the course is coming to a close and now we have to make a final project. The task is quite straightforward: select grocery items in a supermarket. The idea is to implement one of the selection techniques of last time and evaluate it along a few metric such as accuracy, speed, user satisfaction, etc. This blog post will cover the implementation of the technique and the next one will cover the evaluation. [Read More]
IGD301  VR  Unity  C# 

Non Euclidean Black holes

Because why not?

 Posted on January 12, 2024  |  5 minutes  |  878 words  |  Barthélémy Paléologue

Okay, I know what you are thinking: “Non Euclidean Black holes? What is this guy talking about?”. I know, I told myself so at first, but bear with me, it is actually fun! What is a black hole? A black hole is a region of space where the gravitational field get so strong the bending of spacetime becomes very noticable (and deadly, mom’s spaghetti). It becomes so strong that scientists predict the bending becomes infinite at its center at what is called a singularity. [Read More]

Making Shaders Faster #1

Planetary rings

 Posted on December 18, 2023  |  5 minutes  |  1033 words  |  Barthélemy Paléologue

Realtime shader programming is challenging. Although the GPU is very fast, when adding more and more shaders, you always reach a point where your GPU is no longer fast enough. This is where optimization comes into play. Shaders can be optimized in 2 ways: improve the shader code itself, which can give decent improvements, and precomputing data, which can make the difference between 20fps and 500fps. In this blog post series, I will be presenting how I optimized the shaders of Cosmos Journeyer: a procedural universe running in the web browser. [Read More]

VR with Unity #5

Daunting supermarkets

 Posted on December 18, 2023  |  8 minutes  |  1665 words  |  Barthélémy Paleologue

Have you ever been in a supermarket and felt overwhelmed by the task of grabing objects from the shelves? I know, i know. Of course you have! This feeling of frustration is not uncommon for people not using advanced VR selection techniques in real supermarkets. That is why we will explore some techniques that could be used to make your VR experience more enjoyable while shopping for groceries. Use camera FOV-based zoomimg Disclaimer: this method is hard to pull off using Unity’s oculus integration. [Read More]

VR Selection Techniques

An overview of 3 selection techniques in VR

 Posted on December 10, 2023  |  2 minutes  |  309 words  |  Barthélemy Paléologue

Raycasting from the eyes In mainstream VR, the most common selection technique is raycasting from the controller. It is simple and cheap to implement, but having to move the hands around can be tiring. Using your gaze allows for a very natural way to select distant object (the reach is infinite). It is used in newer headsets such as the Apple Vision Pro that take advantage of cutting edge hardware. [Read More]