Elements - Workshop on result-oriented design

The shareplay foundation has granted 500.000 DKK to the project "Elements - Environmental visual effects through result-oriented design". The project will try to tackle some of the challenges faced by the danish creative industry by making them more competetive. The project group consists of Sunday Studio - an Aarhus-based visual effects company - The Alexandra Institutte and the game company Javira.
We would like to invite you to participate in our first open workshop with the purpose of qualifying the project direction and to anchor the project in more Danish companies.
 
The workshop is on the 13th march 2013 at 1PM - 4PM at the Alexandra Institutte in meeting room Ada-333.
Sign up: http://www.doodle.com/7hqft2934eqswdn3
 
The main focus of the project is to build a software platform on which new techniques are able to facilitate quality improvements and faster production in the danish creative industry. By using result-oriented 3D-software we enable the artists to work directly on the final visual result and by doing so we allow the artists to be more creative.
We are going to give an introduction to what it could mean to be working using result-oriented 3D-software. Afterwards we would like the participating companies to join in – and tell us about the challenges you see in 3D software today.
We hope you will participate in our workshop and by doing so help us target the challenges faced by your company.
 
More information about the project can be seen here:
http://www.alexandra.dk/dk/lige_nu/nyheder/nyheder-2013/jan-mar/Sider/Aarhusianere-vil-udvikle-smarte-skyer-og-flammer-til-film.aspx
http://jyllands-posten.dk/aarhus/erhverv/article5202950.ece

Oriented Particles in 2D - an example.

We have been asked quite a lot about the Oriented Particles approach to physically based simulation, where particles besides position and velocity also have an ellipsoid shape, an orientation and an angular velocity. So we decided to do a small c++ demo in 2D of how it can be done in practice.

Basically what the demo show is a somewhat simplified version of our Oriented Particles Christmas Card. The demo is a standard GLUT/OpenGL application but it can also be cross-compiled to javascript/WebGL using emscripten, the result of which can be seen here. In the following we will assume that the reader has read the original paper and thus we will just give a brief introduction to the demo code.

In the demo we want to be able to toss this guy around:

Also we want to make it look like the guy has bones in his body. For this purpose we have drawn a "skeleton" and used OpenCV to identify individual bones and fit ellipses to these. The result can be seen below with the ellipses shown in red. Our little OpenCV program outputs code directly which has been inserted into the example code.

 

Because of some technicalities with emscripten we wanted to avoid loading files from the example, so the shaders have been inlined as strings in c-headers. Also the image of the guy has been saved to a c-header using GIMP and included directly in the example. Source code for the example can be found here.

The class PositionBasedDynamics encapsulates a basic generalized Position Based Dynamics simulation loop, and two constraints, StayAboveLineConstraint and GeneralizedShapeMatchingConstraint, have also been included in the project. In main.cpp particles are attached to nearby particles using implicit (generalized) shape matching constraints in the function CreateObject and the object is inserted to the physics system in the function UploadOrientedParticlesObjectToPhysicsSystem.

For visualization a grid of vertices is created covering the area of the simulated particles. The vertices are triangulated and supplied with texture coordinated and used for rendering. As the particles each have an orientation they each constitute a two-dimensional coordinate system and can thus be used for skinning the grid mesh. For this purpose a parametrisation of vertices is made in the function GenerateGrid2D. Each vertex can be skinned from up to 3 particles and the parametrisation information is stored as 3D texture coordinates where the integer part of each component describes which particle to skin from and the fractional part describes the weighting to use for this particle. Skinning matrices are computed and uploaded to a float RGBA texture and the actual skinning is done in the vertex shader.

To get some motion in the system the little guys bag is moved around the scene. The example is not optimal - for instance the grid mesh could be based on index buffers which would save some calculations. Another problem with the 2D example is that for shape matching involving only 2 particles we sometimes find an optimal rotation that mirrors the particle. A quick fix to remedy this would be to check for mirroring matrices in the 2D matrix class. Also as you might know there are some issues with floating point textures in WebGL - especially when we want to access the texture from vertex shader. So to improve compatability for WebGL/GLES it might be a good idea to do the skinning on the CPU instead of in the vertex program - this was the solution we used when porting the system to iOS.

Hope you'll have fun with the example!

 

 

GLSL and WebGL pathtracing benchmark

We recently published a pathtracer that runs in JavaScript and WebGL (link). The WebGL pathtracer is inspired by a pathtracer that we previously implemented in C++ with OpenGL shaders written in the OpenGL Shading Language (GLSL) 3.3. However, since WebGL 1.0 uses a simpler version of GLSL, namely the OpenGL ES shading language 1.0, we encountered some language constructs that were not supported. This post describes some of the challenges we encountered in order to implement our pathtracer in WebGL. Finally, we benchmark how our WebGL pathtracer performs compared to the OpenGL version.
Read the rest of this entry »

WebGL pathtracing - Xmas competition

We present our newest gpu accelerated raytracer that runs entirely in JavaScript and WebGL. You can try a live demo by clicking the button below, but be sure that you have read the requirements at the bottom of the page before you launch the demo. If your system does not meet the requirements, you can watch a video here.

To involve our audience a bit further we launch a Christmas competition. The rules are as follows:
Update: We have decided to extend the competition until December 27th.

  • Use our raytracer to create the coolest image with a Christmas theme. You can supply your own scene in basic Wavefront OBJ format. Our demo video shows how to use the features of the raytracer.
  • Send a screenshot of your creation to thomas.kjeldsen {at} alexandra(.)dk.
  • We reserve the right to publish your screenshots on our blog.
  • The competition ends on December 27th 2012.

The winner will be awarded a genuine Skylark-124 gaming console.


Requirements
You should ensure that you have a web browser that supports WebGL with the OES_texture_float extension.

If you use Windows you will need a recent version Firefox (v17 has been tested) or Chrome (v23 has been tested) due to some optimizations in the shader compiler in the Angle layer. Alternatively you have to enable native opengl in your browser (in Firefox open about:config and set webgl.prefer-native-gl=true, in Chrome use the command line argument --use-gl=desktop).

Oriented Particles Christmas Card

To warm up for Christmas we decided to create a small interactive Christmas card for all of you.

The interactive part is based on a 2D version of the Oriented Particles approach to realtime physics simulation.

The card was implemented using our Alexandra Physics Engine in c++ and cross-compiled to javascript using emscripten.

The card has been reported to work on most systems in Chrome and Firefox but some systems lack the required WebGL capabilities.

You can try if it works on your system here.

There will be a tutorial on the 2D oriented particles later on this blog.

VFX Christmas highlights

The Computer Graphics Lab at the Alexandra Institute invites you to give yourself the Christmas present of attending this afternoon of VFX niceness. See exiting new technical possibilities from people in the heart of the digital content creation industry. Hope to see you there!

Invitation in pdf

Venue

19 December 2012 • 13:00 – 16:00

”Lille Auditorium”, INCUBA Science Park, Åbogade 15, 8200 Aarhus N

Registration to jesper.mosegaard {at} alexandra(.)dk

Plan

13:00 – 13:15 Introduction by Jesper Mosegaard, CG Lab, the Alexandra Institute
13:15 – 14:00 There and back again - a journey into VFX, Michael Bang, Aarhus University
14:00 – 15:00 OpenVDB, A Free Volumetric Toolkit For Visual Effects, Ken Museth, R&D FX Supervisor and Principle Engineer, Dreamworks Animation
15:00 - 15:15 Coffee and cake
15:15 – 16:00 Mystery guest, TBA

MICHAEL BANG

After completing a postdoc at Aarhus University in 2010-11, I was a research contractor in the research group at Weta Digital – the main visual effects vendor behind movies such as the Lord of the Rings trilogy and Avatar. I will describe some of the research challenges we were faced with during production on the movie Adventures of Tintin – Secret of the Unicorn. Solutions to the challenges were later published at some of the leading conferences and journals in computer graphics and include cutting edge results in rendering and simulation. In this talk I will provide an overview but focus on the results achieved in fluid simulation. I will also share some of my personal experience from working in the VFX industry and learning from the VFX wizards of middle earth. I have now returned to an assistant professor position at Aarhus University, and please note that since I am not a representative of Weta Digital, this talk will only cover material already in the public domain.

KEN MUSETH

Following the recent open sourcing of DreamWorks Animation’s sparse volume toolkit, OpenVDB and SideFX’s subsequent announcement to integrate it in its next major release of Houdini, this presentation is targeting early adopters that wish to experiment with the new technology. Fans of OpenVDB use the phrase “batteries included” to describe the fact that the library ships with a rich toolset of high-level volumetric processing and conversion tools that can be applied directly in VFX pipelines. The presentation will focus on three aspects of Ken Museth's OpenVDB: 1) a description of its underlying data structures and its accompanying toolset, 2) its integration into Houdini as a first-class citizen, and 3) a tour of the existing Houdini nodes that are included in the open
source distribution.

 

WebGL Tutorial: Optimizing Data Transfer for WebGL Applications

Introduction

WebGL is a technology that has pushed the limits of content that can be published on the web. For example, Fig. 1 shows that with a modern graphics card, WebGL allows us to render very complex scenes with hundreds of thousands of polygons directly in a browser window. One challenge is now that large amounts of geometric data must be transferred over a network connection prior to rendering of such complex scenes.

With current broadband connections users expect smooth browsing experience where web pages load almost immediately. If the loading time exceeds a few seconds the audience often lose interest and proceed to another website [1]. This timeframe turns out to be hard to reach for some WebGL applications.

Figure 1: The Stanford dragon consists of 871414 triangles. Models with this polygon count are straightforwardly rendered in real time in WebGL. A big challenge, however, is how to load the massive amounts of vertex data for such detailed models. For example, the model shown in the figure uses 60 megabytes of vertex position and normal data.

As shown in Fig. 1, the size of raw vertex data can easily be on the order of tens of megabytes. With a reasonably fast connection with a 10 Mbit/s bandwidth, it takes around one second to load each megabyte of load vertex data. On the other hand, javascript engines used in modern browsers can process data at a much higher rate, and, hence, we can obtain faster loading times if we somehow can decrease the amount of data transferred over network at the expense of some postprocessing at the client side.

In this tutorial we will go through various techniques that can be used to optimize the loading time for large amounts of vertex data. Furthermore, we will demonstrate how data can be cached so that it does not need to be reloaded between browser sessions. We assume that the reader has basic knowledge about OpenGL vertexbuffers, JavaScript, and Ajax. We will extensively make use of features that are still W3C working drafts the so code may not run on older browsers and functionality may change in the future. We have tested all our code samples with Google Chrome 20 and Mozilla Firefox 16.
Read the rest of this entry »

Big Data Visualization Workshop

Do you know the real value of your data?

– Visualise your data and learn the true meaning and value of your data for you, your organisation and your partners.
At the exclusive hands-on workshop on Big Data Visualisation we show you how your data can be transformed from a big list of symbols to visualisations that can be understood, interpreted and fed into decision processes. 4 keynote speakers will guide us through a day of hands-on work-stations covering:

  1. Creating value from data through business models;
  2. Mapping the interactions between data and use;
  3. Creating beautiful and useful mock-ups of big data.

Each hands-on workstation will be manned by experts in the area, guiding the participants thorough a number of steps to develop a (1) Business Model Canvas, (2) Story Board about User Interactions and (3) Visualisation Mock-Up, based on your data and ideas.

Agenda

1000-1030 Welcome by Jesper Mosegaard and Mirko Presser
1030-1100 Marcelo Soria Rodriguez, BBVA “Financial Data Visualisation”
1100-1200 Workstations Round 1
1200-1300 Lunch
1300-1330 Børge Obel,  ICOA, "Organizations and Big Data"
1330-1430 Workstations Round 2
1430-1500 The City of Aarhus (TBA)
1500-1600 Workstations Round 3
1600-1630 Andreas Lykke-Olesen, Kollision, "Designing Interactive Communication"

The workshop will be held in Danish with some of the presentations in English. The attendance is limited to 30 persons with a first come first serve basis.

Sign-up

No later than the 23th of November 2012 on

http://cg.alexandra.dk/registration-for-big-data-visualization-workshop/

Venue

Wednesday 5th of December 2012
’Smedien’, Centralværkstedet
Værkmestergade 9
8000 Aarhus C

Path Tracing and Stochastic Progressive Photon Mapping

Some pictures and videos from our own gpu-raytracer which is physically based and currently supports path tracing and stochastic progressive photon mapping with a variety of different materials.

The left statue is made of rough glass , the middle is an imitation of plastic/wax and the right statue is copper (using sopra nk-values).

Full spectral rendering using stochastic progressive photon mapping.

A comparison between pathtracing and sppm after two minutes of rendering. Click the image to see a video-capture of the rendering.

Tags: , , ,

Interactive infographics in WebGL

In a previous post we presented a bar diagram as a quick overview over data from Danish municipalities. We have now released a live demo that utilizes some of the newest html5 features, e.g. WebGL.

Click here to launch the demo. You need a recent chrome, firefox, safari (non iOS) or opera browser. Internet Explorer is not supported.

Use the keys "wasdqe" and the mouse to navigate and change between dataset in the right column.



Tags: , , , , , , , , , , ,