Procedural Space Stations #2

Comfortable artificial gravity

 Posted on June 14, 2024  |  10 minutes  |  1999 words  |  Barthélemy Paléologue

Hello again! This is the 2nd post of the procedural space station series aiming at creating realistic space station for Cosmos Journeyer through the awesome power of science! The previous post about energy is not required to understand this one, but you can read it here if you are interested. In the previous article, we created a model for the surface of solar panels needed to power our space stations. But we also need to create habitable sections where people will live their life in comfort, just like you are doing right now I hope ^^ (make yourself at ease! [Read More]

Procedural Space Stations #1

Modelling solar panel surface from energy requirements

 Posted on June 2, 2024  |  8 minutes  |  1697 words  |  Barthélemy Paléologue

How can we create realistic looking space stations? How to make them feel grounded and functional? That’s what I want to explore it this series of blog posts while developing the new space stations for Cosmos Journeyer. Here is a sneak peak: View from Cosmos Journeyer's space station In this first one, we will talk about solar panels. They are an iconic part of the look of space stations: from Mir to the ISS, and Tiangong to the upcoming Lunar Gateway, they all have them! [Read More]

Ocean Simulation with FFT and WebGPU

Jerry Tessendorf's ocean simulation meets Tri-planar mapping

 Posted on March 20, 2024  |  16 minutes  |  3250 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  |  944 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!). Cusdis Disqus 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  |  4301 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  |  672 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: 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  |  3403 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  |  898 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  |  1038 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]