Cakes & Desserts & Liqueurs
Various projects at Royal HaskoningDHV
Projects
Polar Vertex
Drawing of the week book
How to turn hundreds of whiteboard drawings in a great looking book.
Modern lamp
How to build your own great looking lamp with wood and easy to get materials.
VouwGrond - Paper craft soil layer visualization
Soil types at almost any location in the Netherlands using paper craft!
MySensors based sensors + dashboards
Introduction to MySensors library & battery powered nodes.
Simple DIY wireless button
How to make a BIG wireless button to trigger anything on your computer, laptop or Rasberry Pi.
DIY dressoir using wood
Candle powered Christmas pyramid
Building a Christmas pyramid (Weihnachtspyramide) with wood.
Construction of a Gloggomobil
Homebuild windmills
DIY Tetrapod plush
Climagon climate paper craft
Internet hardware furniture
Old code
Various games / projects at Deltares
Pompeii - Bike pump controlled game
Om de put (Around the pit)
Levee Patroller
Groen Eiland
Zand verdeler
Horsegame
CPT - game
Port of the Future (Corealis)
Serious game about ports of the future; nature based solutions.
Virtual Reality versions of experimental facilities
CIrcle
CIrcle a tool to support the analysis of domino effects of critical infrastructures.
Sustainable Delta Game
Game which combines 3d graphics, playing cards and a simulation model.
Older games
Augmented Reality / Graphics
Subsoil on a mobile device
My Master thesis: Visualizing and estimating the distance and depth of underground infrastructure.
Real-time visualization of water simulation
Turning calculated water flows into a real-time visualization.
RED - Motion captured animation
Open Data Sources for 3D Data Visualisation
Realtime visualization of water simulation output
Water experimentation project
For the "experimentation project" at the University of Utrecht, I created a real-time water visualization based on the output of a Sobek run. Sobek is a 1D/2D modelling suite. One of the formats that Sobek can output is "Incremental ASCII files". Which basically are just a long list of changes spread over many frames.
Now, one could read these frames, create a texture out of it, and render these steps with a certain interval. Of course, this would not really capture the 'flow' of the water. My goal for this experimentation project was to:
- »Take the existing data
- »Interpolate between the given frames
- »Show a fluid water flow on some kind of 3D map view
The data that I used in this experiment was a simulation of a levee breach somewhere in The Netherlands. Which immediatly resulted in a first problem: In the first few frames the water has quite some velocity. The data consisted of 48 frames, each 30minutes a step. So between the breach and the next step would be 30 minutes.
A modified floodfill algorithm
To solve this problem I created an modified floodfill algorithm, which works like a layered bathtub. The water will normally keep increasing for a while, until it will overflow somewhere else. Then in this new "tub" the water will continue to increase. Until, of course it will also overflow.
Think of a bucket in a bathtub in a swimmingpool. This algorithm has become rather slow as the edges where it can overflow, keep increasing the higher the waterlevel comes.
This algorithm created a "flow time texture" which indicates how the water would flow. For efficiency reasons the texture contains various data separated over the texture channels. The "flow" of the water can be clearly seen this way, and the high water velocity at the starting point as well. The image's alphachannel is also used as part of the time texture, hence that this image shows transparency as well.
Having the interpolation ready, there still need to be some way of visualizing it. This was done using a technique called "Flow maps" as presented by Valve's Vlachow at SigGraph 2010: Water Flow in Portal 2 - Valve. It is a nice read!
Sobek provides the water flow vectors, but in this case they were not very practical to use, as those would only show the flow for each timestep (30 minutes). Therefore I added an extra element to the algorithm which determines flow based on the "overflowing bath tub" principle, and turn it into a normalized flow map. This results in the following (quite tall) texture:
Combining the flow textures, some shaders and a terrain texture leads to the following frames.
Some moving animations. Unfortunately the animation does not come to its justice on a small video, in my opinion. It really looks quite nice on a higher resolution.
"The water is too dark/real/etc..."
One of the most frequently heard comments was that the water was too dark! I modelled the water colours upon the colours of the March 2011 tsunami in Japan, as that was right when I was working on this project. But I also made a light variation of th water.
Download the whole PDF
Download the detailed PDF containing a lot more technical information about the actual implementation here.