Drivers: Complex behavior without coding

DriverWaveBlender features a powerful programming interface for Python scripts to achieve almost any level of control over visualizations. This is, of course, very important for developing EVOs that model processes and dynamic systems in environmental visualizations.

Complex behavior in Blender visualizations can also be achieved without coding via the built-in drivers system. Drivers are parameters (of scene objects) that are connected to parameters of other objects such that if the driving parameter changes the other parameter(s) driven change simultaneously. The power of the driver system relates to the fact that almost any parameter can be connected with any other (including material parameters etc.) and in that there is a great flexibility how to connect the parameters functionally (via expressions).

There is a new training resource available that is dedicated to reveal the power of drivers for dynamic visualizations.

Turning Blender into an environmental system builder?

BConf14_FDSo far, modeling EVOs that allow «live» interaction with visualized environmental systems via a customized user interface have already become the «Standard EVOs» at D-USYS. Still, they just scratch the surface of what is possible using Blender and its Python scripting language as a development platform.

A good example of how Blender could even be used to create a user friendly «environment creation kit» was demonstrated at this years’ Blender conference in Amsterdam. Using the full potential of the Blender development platform a «Fluid Designer» has been developed allowing the user to quickly create interior architecture using libraries, drag and drop and very intuitive and flexible interaction with the visualized setting. Check out the presentation by Andrew Peel!

Environmental scientists do not exactly focus on interior architecture. However, similar techniques could be used for developing an environmental system builder within Blender that incorporates «intelligent» rules for creating properly structured and functioning systems.

«Visual programming» with nodes

Example node group for compositing different animations side-by-side in the final video

Example node group for compositing different animations side-by-side in the final video

In Blender a myriad of settings can be used for developing an EVO, and one can also use the Python scripting language. For an increasing number of functional areas within Blender there is a third, very powerful control interface: the node system. Nodes that take data input can be combined (linked) with all kinds of nodes that process these data in some way before the processed data are fed into output nodes. This way, complex control structures can be «visually programmed».

The classic field of using node systems is compositing, i.e. for combining still or animated visualization layers and for post-processing to end up with a presentation-ready animation including the full depth of the visualized system, labels, color correction, special effects etc.

In addition, in Blender the node system of the Cycles render engine is used for the definition of the material of objects (surface appearance). Using this node system highly complex materials can be relatively easily developed.

There are further exciting uses of the node system that are under development for Blender: one is for controlling particles and another one for procedurally generating and processing objects.

Interfacing an EVO with external analysis

image_analysisEVOs may be good at visualizing environmental systems and processes but are often less suitable for analysis of the emerging patterns. If there is a strong desire to couple visualization with analysis, a solution may be to interface the visualization outcome with analysis by external software.

In a recent project the development of wheat in an agricultural field was visualized in relation to nutrient patchiness. The colour- and transparency-coded representation of wheat fitness and density cannot be easily analyzed within the EVO. A working solution is to take a birds-eye snaphot of the field and analyze the image with specialized tools in Adobe® Photoshop™. In this case, colour range selection filters were adjusted such as to detect areas in the image that represent different classes of wheat fitness. The corresponding areas can then be calculated as percentages and compared between various simulated treatments.

Simplifying complex animation tasks

With top notch 3D design and animation software (like Blender of course) you have very sophisticated tools at your fingertips to accomplish even very challenging visualization tasks. While this is true, these tools may require quite some time to learn and even more time to be controlled in a way that the visualization outcome is satisfactory. For example, you can use paths, newtonian physics, collision objects and a LOT of parameters to guide particle streams in visualizations. But too many interacting effectors may render efficient control of the particles hopeless.

In many cases a great shortcut in such a situation can be carefully preparing 2D animations (videos) that can be mapped onto dynamic objects in the visualization. For instance, using this technique, complex deformations of vortices and other flow domains can be designed with relative ease.

2D dynamic visualization

ShopStrip_2DDynamicsIn many cases 3D visualization is not necessary to communicate complex sytem dynamics, and 2D dynamic visualization is used instead. 2D dynamic visualization can draw on EVO technology like 3D visualization and is even more resource efficient. The 2D visualization power and flexibility surpasses more traditional tools for 2D visualization like Flash or HTML5/Javascript.

EVO routines have been developed for visualization of cross sections through 3D systems alongside dynamic diagrams that are related to system changes visualized within the cross sections.

3D printing revisited: A soil model for experimenting

3DP_soil_AbertayIt is relatively straightforward to envision 3D printed EVOs (let’s call them Physical Environmental Models or PEMs) to be of use as concept and demonstration models in the environmental sciences. But how about stretching the scope further and using PEMs even for research and experimentation?

A team of scientists at Abertay University (UK) has already taken steps in this direction. They used ct scanning for obtaining the intricate 3D structure of soil and visualized it in the computer. Then they used powder bed 3D printing to produce a nylon model of the scanned soil volume that realistically traces the detailed structure of the soil. Their aim is to use this ‘articficial soil block’ for investigating microbial interactions in soil.

It seems it’s about time to sit back and start thinking about all the possibilities that making specific EVOs physical may offer to environmental sciences.

EVO generic functionality

This section presents an overview over all generic EVO functionality that has been developed so far. With ‘generic’ we refer to functionality that can be adapted and reused in various teaching and presentation contexts in the environmental sciences.

In case you’re interested in using some of this functionality for your teaching or research communication at D-USYS please contact us.


2D dynamic visualization
3D printing of objects
Block section visualization
Changes over time
Comparing compartments
Complex functional dependencies
Compositing different environmental layers
Context-dependent visualization
Cross sections
Data export
Data import
Diagram visualization: Dynamic diagrams
Diagram visualization: Imported diagrams
Direct local manipulation
Experimental Design
Factor gradients
Head Up Display (HUD) of scene data
Heterogeneity and scale
Inheritance of information across generations
Interactive curves
Light & shade visualization
Masking effects corresponding to environmental patterns
Morphological changes
Mouse selection measurements
Particles: Surface distribution
Physical forces
Plants: Communities
Plants: Plant architecture
Plants: Plant growth
Plants: Trees

Procedural patterns
Procedural structures
Visualization: Different view perspectives
Visualization: Different view qualities
Visualization output: Animation

Volumetric visualization

Analysis of 3D structures – a brain case example

BlenderConference_2013The 11th Blender conference in Amsterdam again offered various intriguing presentations on using Blender in scientific visualization (click on the image to see a full list of presentations and the corresponding live streams).

For this post I’ve picked one by Graham Knott, who is a researcher and head of the Biological Electron Microscopy Facility at the EPFL in Lausanne. He investigates the fine structure of the neurons in the human brain using electron microscopy and advanced image analysis algorithms to arrive at detailed 3D models of brain tissue components at the micron scale. For further analysis and visualization of these components they turn to Blender.

Environmental scientists do not exactly focus on brain research. However, it is not difficult to conceive how similar techniques could be used for substrate analyses and visualization in the environmental sciences.

Crowd simulation visualization in Blender

For once, we refer to an external contribution to scientific visualization in Blender: In a workshop “Blender as research tool: from data to visualization” held by PhD student Sybren A. Stüvel from the University of Utrecht, it is shown how Blender can help in more realistic crowd simulation visualization. The workshop is focused on how to use Python to code the visualization.

Duration: 55’0 7"

Camera tracking for enhanced realism in visualization

There may be circumstances when virtual objects or processes should be evaluated in a photo-realistic context, for example to assess the impression of a wind turbine at a given spot in the landscape.

In such situations visualizing a photo-realistic context by means of modeling, texturing and lighting in a 3D-software may be a daunting task. But there is a methodological shortcut you may be able to use: camera tracking.

Origin of the wind turbine model

With camera tracking (which is available in Blender) you place virtual objects or animations in the context of life footage. The magic bullet for achieving a believable result is that camera tracking allows the movement of the virtual camera be trained by the real camera with which the footage was recorded. As a result the virtual object in the real scene stays at the same spot in the landscape reponding realistically to camera transformation and shake.

How this all works? Check out the great tutorial by BlenderGuru (Andrew Price)!

Creating an object for 3D-printing

In this tutorial we create a landscape model such that it can be sent off for 3D-printing. This tutorial gives you just an overview over important aspects to be considered in the process and is meant to prepare you for the possibility of making EVOs physical.

evohd—Blender Internal Renderer—Blender 2.67b — Duration: 14’36”

For much more detailed instructions visit the 3D-printing with Blender video course by Dolf (Macouno) Veenvliet.

Procedural visualization of environmental factors

comp-proctexThis EVO component uses a Cycles material node tree for visualization of nutrient availability patterns and the position of the groundwater table in a soil block model. By changing node parameters the visualization can be dynamically adjusted to different environmental situations.

Developed with Blender 2.67b;
does not include Python script

Planning with open software

No separate Investigation EVOs any more in future?

No separate Investigation EVOs any more in future?

Open software also means open communication, i.e. users normally know, or at least get good indications, where further development of the software is heading: Ton Roosendaal, the chairman of the Blender Foundation, recently posted a roadmap for development of upcoming versions 2.7, 2.8 and beyond of our visualization software Blender.

For the game engine module he suggested to integrate its real-time interaction functions into the main Blender environment. This would probably enable EVO developers to seamlessly blend investigation modules in Modeling EVOs so that there would be at least no technical reason any more to distinguish between Modeling and Investigation EVOs. Tons suggestions sparked a lively discussion that both raved about the new possibilities but also feared the likely consequence of shutting down developing this part of Blender into a real game engine.

Anyway, good to know for strategic planning of further EVO development!