Archives for posts with tag: work

We just wrapped up a full-day Blender workshop yesterday under the blazing sun of Pisa, Italy.  The seminar went smoothly and was well received.  A total of 35 attendees showed up despite the fact that the event was announced only a week prior.

In the morning, the attendees got a high level overview of what Blender can do, followed by a crash course on scientific visualization as applied to cellular biology and biochemistry as well as an extensive Python lesson.  In the afternoon, we moved to the computer lab and covered some of the Blender fundamentals, giving a lot of the attendees their first hands-on experience with Blender.

Even though this is my third time running such an event, there is still lots of rooms for improvement.  (For example, Blender 2.5′s UI was corrupt on some of the machines running older Ubuntu installations and Intel graphics chip, which made running the tutorials very challenging)

Photos of the event are on Pisaca.  Special thanks to the Pisa Linux User Group, without them, this workshop would not have been possible.

Here at the Scientific Visualization Unit of the National Research Council in Pisa, Italy, we have been using Blender since 2008 for doing some very interesting bio-molecular visualization at the sub-cellular level.  I myself joined the team just over 3 months ago, and am eager to share some of our work with the Blender community now that the Italian soccer team can stop embarrassing themselves in South Africa.

We use Blender to visualize protein motions and interactions, as well as making short animations that show the inside of a cell in a way that had never been seen with the unaided eye.  Because one key focus of the project is scientific accuracy, a lot of time is spent to ensure that the visualization is not only nice-looking, but also scientifically accurate. The process involves using numerous third-party programs to convert the input data (atomic coordinates of a protein) into something Blender can read. We use Python extensively to help facilitate data conversion between different formats.  The result is this video:

To really appreciate the video, it helps to understand the science going on behind it.  If you are a bit lost, have a look at the explanatory note associated with the video.  The video is made and rendered with Blender in 1080p HD, we also toyed with stereoscopic rendering with some very good result.  You can download the HD stereo version from the SciVis site.

Currently, we are working to build an interactive protein viewer inside Blender.  Using Blender 2.5 as the platform, we built an interface that will allow biologist to load a text description of any protein (a PDB file), and Blender will display the imported file in an intuitive interactive viewer. (As shown below)

Why Blender? Blender is especially suitable for this task for several reasons. Its python support allows us to accomplish a lot of custom features in relatively very little coding.  Having a game engine and a physics engine built-in means we can use do realtime visualization all from one software package.  Its open source nature allows us to easily modify (at least have access to) the source code if needed.

Above is our BioBlender interface for Blender 2.5.  The protein on the right is MLCK backbone, a 1845 residue long protein.

There is still a lot of work to be done.  Blender is currently having a hard time handling large proteins that contains thousands of amino acid groups, the interface turns sluggish with as the number of object increases.   Surprisingly, the game engine performance is very fast, it manages to maintain 20fps on a laptop even with a fancy ambient occlusion shader.

More on what I am doing in Italy later.  For now, enjoy these on Flickr:

I had been lucky enough to be a part of a very cool project taking place at the Fisheries Centre at the University of British Columbia.  In a nut shell, we are trying to create a 3D underwater visualization using the Blender Game Engine to display scientific data in a more pleasing way.  Basically translating a stream of mind-numbing data:

into something prettier:

The visualization data is coming from EwE6, a well-respected ecosystem modeling software.  Blender uses inputs such as biomass, water turbidity and light level to create a realtime visualization that allows the user to ‘swim’ around in the ocean, watch the schools of fish interact, and see their population change over time.

To accomplish all this, the project consists of 3 layers:

The server core does all the heavy computation while the visualization layer does all the graphics, AI, as well as user interaction.  To facilitate the communication across these two separate processes, a third layer (called the GameClient) is created, providing the bridge.

Being a Blender artist, my main focus is on the visualization layer: the Blender Game Engine.  In the following few posts, I will outline the process in creating this application, and describe some of the issues we faced.  Please leave a comment if you are interested, it will motivate me to write more :)