top of page


Publish or Perish

A great way to share your research is to publish it in a peer reviewed journal. This gives you cred in the academic world. It is also a good way to have a permanent record of your work. To make this list a bit more interesting I added some personal stories for each paper. Like how did the research come about? How were the reviews? What was the impact? This information is rarely given in the final version of the paper.




Jos Stam (2015)

A K Peters/CRC Press
October 2015


(The Art of Fluid Animation)

原著:Jos Stam

译者:叶军涛 杨旭波


Sometime in rainy Seattle back in 1997 I was supposed to work on subdivision surfaces and I did! But at the same time in between surface meetings I wrote a stable fluid solver. Just like that. That was the seed for my book.

But before the book I wrote a paper called “Stable Fluids” which barely got accepted at SIGGRAPH in 1999. During my presentation I received applause. No one had ever seen interactive fluid animations live before. Then I ported the fluid solver to small devices like the Pocket PC which I showed again at SIGGRAPH in 2001. That lead me to a very simple implementation that I presented at the annual gamer conference called GDC in San Jose in 2003. That is the simple solver you can find in the book. The book also talks about other exotica like bugs crawling on donuts using the almighty Fourier Transform and fluids crawling on iPhones and iPads and using an ad and a joint to control fluids.

Many presentations followed of course in many continents except for Antarctica and Africa. Too bad: these two continents have a lot to offer in the way of fluids. I was also showered with prestigious awards: the SIGGRAPH technical achievement award in computer graphics and three technical Oscars.

For years people had been asking me to write a book based on my presentations. I made fluid animation sound easy and accessible. It is so accessible that you can download my code and start creating your own fluid-like animations. Finally in 2014 after I gave a keynote talk at a conference my publisher convinced me to write a book on fluid animation. I had nothing better to do at the time and Autodesk Okayed the project. I thought it would be easy: just write down what I usually say during a presentation. Well it turned out to be more work than I anticipated but it kept me busy. And I can call myself a writer now.

The book is a very personal view of my understanding and my contributions to fluid animation. I tried to make this book engaging and fun to read. I tried to communicate my passion for Art, Mathematics and Computer Programming. I hope it will appeal to a wide audience. Enjoy.

The book has recently been translated into Chinese.



Jos Stam (2023), edited by Mary C. Whitton.

Article 16:139-149 : "Exact Evaluation of Catmull-Clark Subdivision Surfaces at Arbitrary Parameter Values".

Article 81:779-786: "Stable Fluids".

This a collection of seminal papers that have shaped computer graphics over the last 50 years. Two of my single author papers published in the late nineties were selected. You can download them below.


This paper is based on the seminal paper by Levesque and Verlet in molecular dynamics. It proposes a blend of reversible integrators and fixed point arithmetic. Most fundamental laws of physics are reversible and can be derived from a Hamiltonian description. Yes even Quantum Mechanics. At a microscopic level theoretical physics tells us that the world is inherently reversible. This paper  shows how this can be achieved at the computational level. Our main application is the computation of gradients of Hamiltonian systems using the adjoint method. The adjoint method requires a "backward" integration pass. So having an exact reversible integrator avoids having to store the intermediate results in a forward pass. This is analogous to neural nets where results have to be stored in the forward pass as they are needed in the backpropagation pass. Of course this only works for reversible systems. At any rate we think that the exact (bitwise) reversible integrator described in this paper can have many novel applications in computer graphics and machine learning.

Below we  give a link to our paper, the Levesque & Verlet paper (not readily available on the web) and our demo that shows the reversibility for a chaotic pendulum. The latter is a JavaScript application that you can experiment with and download the  source that contains the code.


This is my first Machine Learning paper! In Machine Learning you need to map symbolic things to some computational space. Why? So you can quantify relations. Usually people choose good old Euclidean space where distances between mapped things are along straight lines. For tree like structures people figured out that hyperbolic spaces were more suitable. The math genius Gromov worked on this. Hyperbolic spaces are used in special relativity where you have one dimension of time and three dimension of space: 4D space time . Distances are weird in space time: -c^2*dt^2 + dx^2 + dy^2 + dz^2. You can have negative, zero and positive distances. We generalize these spaces to have q dimensions of time and p dimensions of space. Huh? In string theory they use many dimensions of space and one of time. We just add more time dimensions. Why not? We are not doing physics but ML. That allows us to map a wider range of things in our computational space and apply learning algorithms like gradient descent. Doing gradient descent in our spaces is tricky and we show how to do it. That is one of the main contributions of the paper. We applied our spaces to the "Zachary Karate Club" problem in graph theory.


Jos Stam (2020)

I presented it at virtual SIGGRAPH 2020 in a special nvidia session (see below).

Back in 2004 I published a paper with the Seattle gang (see below) that used the adjoint method to control the simulation of fluid-like animation. The adjoint technique back then was some obscure technique (at least to us!) to efficiently compute gradients. The cool thing is that it is independent of the number of controls. In practice it means that computing the derivatives is up to a computational constant as expensive as the function itself. Yeah it seems like magic. It wasn't until my final dying days at Autodesk that I started to get interested in this method again in the context of shape optimization. Then in the beginning of 2019 when I started my current job at nvidia I got interested in AI and Machine Learning. I came across a paper called "Neural ODEs" and was surprised to find out that it cited "Stable Fluids." Woah, this paper got the best paper award at NIPS and cites my paper. What is going on? I then realized they should have cited our 2004 paper mentioned above. Neural ODEs are a way to optimize ODEs using the adjoint method. You can see them as continuous residual networks. I then realized that back-propagation is just the adjoint method applied to to a neural net. So I decided that I could use my knowledge of the adjoint method and maybe apply it to some Machine Learning problem.  I presented the research at an nvidia session at SIGGRAPH 2019. Prior to that an idea occurred to me that that the adjoint of light transport might be related to the adjoint in optimization. This simple idea led to the current work. I wrote up the basic idea and the math in a paper in October and then tried to convince people within nvidia to help me implement it into a fancy rendering package. Everyone was too busy so I decided to write my own path tracer. It turns out it is surprisingly easy to implement a Vanilla path tracer. That is what I used to validate my model and create the eighties retro looking pictures that you can find in the paper. I also provide the entire pseudo-code for the path tracer. Maybe I will release the actual code in the future. So the paper is pretty much self-contained.


Jun Xing, Rubaiat Habib, Tovi Grossman, LiYi Wei, Jos Stam, George Fitzmaurice (2016)

UIST 2016 Conference proceedings:ACM Symposium on User Interface Software & Technology

This is my first and only publication in the field of Computer Human Interaction. I helped with some of the physics/dynamics aspects of the paper. I was lucky enough to work with HCI's finest.


Nobuyuki Umetani, Ryan Schmidt, Jos Stam (2014)

SCA 2014 Conference proceedings:
ACM SIGGRAPH/Eurographics Symposium on Computer Animation

For quite some time I was trying to get proper constraints working for curves in Nucleus. I tried a variety of techniques like adding extra links and using a bending constraint for twist. None of these attempts were very successful. Then Nobuyuki joined our group and I told him about the problem. And guess what? He came up with an elegant solution using Darboux vectors. I made some minor contributions and ported his code into Nucleus which is part of MAYA. Nobuyuki's stuff runs in MAYA! That is how we created some of the animations. Ryan implemented it in his MeshMixer software. The method is pretty straightforward to implement in a Position Based framework.


Jos Stam (2012)

Photography Changes Everything
Aperture, Smithsonian Institute
June 2012
pp. 52-55

After the piece about me appeared in Wired magazine I got contacted by the Smithsonian Institute to write an essay about photography and computer graphics. It is actually more a discussion about how to depict "reality." I am in good company. My Hugh Hefner number is now one!


Jos Stam (2012)

Journal of Math-for-Industry
February 2012, Volume 4
pp. 49–53 

This paper describes some fun code I wrote to test custom constraints for the Nucleus API. It is inspired by some books I read about nano-biology. The stuff that happens at the DNA level. After I presented this work in Japan, the organizers asked me to write this material up in their journal. I presented this in Oaxaca and at Pixar as well.


Jos Stam and Ryan Schmidt (2011)

ACM Transactions on Graphics
May 2011, 30 (3); Article 21

This paper is a good example of how a neat theoretical result is inspired by a practical problem. After interfacing the particles of Nucleus to MAYA I was asked if there was a way to motion blur the resulting blobby implicit surface. This is crucial in practical applications. What is needed is a velocity at each point of the surface. The "solution" to this problem is surprising. The math is simple and I wrote some code that allowed our particles to ship in MAYA. I wrote up a paper of two pages with three references and submitted it. That version was of course rejected. Ryan to the rescue! He created many examples showing the effectiveness of the method and added a ton of references. It finally got accepted at TOG and I got to present it at SIGGRAPH.


Ramtin Attar, Robert Aish, Jos Stam, Duncan Brinsmead, Alex Tessier, Michael Glueck, Azam Khan (2010)

International Journal of Architectural Computing
December 2010, Volume 8, Number 4
pp. 399-418 

This is a journal version of the paper cited below.


Jos Stam (2009)

2009 Conference proceedings:
IEEE International Conference on Computer-Aided Design and Computer Graphics
pp. 1-11

This paper is actually an extended abstract. I was invited to give a keynote for a conference in Yellow Mountain China. The organizers asked for an abstract without a page limit. I decided to finally write something up on my Nucleus solver which was released in MAYA in 2007. I had been working on Nucleus since 2003 and started to write the final solver in 2005. I knew it would be impossible to write a SIGGRAPH style paper on the topic as the amount of material is way too vast. This paper is more of an overview giving the main ideas and philosophy of Nucleus. The devil is of course in the details not provided in the paper. Nucleus is interfaced to MAYA through an API. Making it work in MAYA was a higher priority all along over publishing a paper. You will notice that the writing style is somewhat informal as it is based on many talks I have given on the topic.


Ramtin Attar, Robert Aish, Jos Stam, Alex Tessier, Michael Glueck, Azam Khan, Duncan Brinsmead (2009)

CAAD Futures 2009 Conference proceedings:
CAAD Futures Foundation

This is my first and only paper in the field of architecture. A lot of the examples in the paper are based on Nucleus and I wrote up the relevant part. Nice to see the ideas of Nucleus are being used in other fields.


Julia Pakalns, Duncan Brinsmead, Jos Stam (2009)

Technical Report Autodesk [whitepaper]
May 01, 2009

This white paper describes how to use Nucleus in MAYA. Most of the hard work in MAYA was done by Duncan and Julia.


Azam Khan, Ben Komalo, Jos Stam, George Fitzmaurice, Gord Kurtenbach (2005)

I3D 2005 Conference proceedings:
ACM Symposium on Interactive 3D Graphics
pp. 73-80 

My only contribution to this paper was to write some triangle ray math codes.


Antoine McNamara, Adrien Treuille, Zoran Popovic, Jos Stam (2004)

ACM Transactions on Graphics (SIGGRAPH Proceedings)
August 2004, 23(3)
pp. 449 - 456 

This a follow up to the smoke control paper with the Seattle gang of three. This time the adjoint method is introduced to vastly improve the performance of the technique. As usual I wrote my own implementation which is described in the course notes below. I also wrote the code for the renderings in one day by mashing together a lot of research code I had lying around.


Jos Stam (2004)

SIGGRAPH Course Notes
March 01, 2004

These notes complement the paper I published with A&A&Z. They were very useful in writing my own adjoint code and understanding the math.


Jos Stam, Charles Loop (2003)

Computer Graphics Forum
November 2003, 22(1)
pp. 79-85 

While I was in Seattle we had a group working on subdivision for conceptual design. The workflow was as follows. Combine coarse meshes through booleans to create a mesh for the subdivision process. Problem was that booleans create nasty meshes and nasty meshes create subdivision surfaces with unwanted ripples. Charles calls this "garbage in garbage out." Our meshes were quads and I had the idea that maybe keeping triangles around would help. It does help and the hybrid scheme is cool. It did not solve all of our problems however. When I was finishing up this research I remembered that Charles presented some work on the regular quad/triangle case at a Dagstuhl seminar. Since Charles is a friend and was living in Seattle I contacted him and we wrote this paper together.


Jos Stam (2003)

ACM Transactions on Graphics (SIGGRAPH Proceedings)
July 2003, 22(3)
pp. 724-731 

I thought it would be cool to combine my fluid work with my subdivision work. Actually I always wanted to see flows on surfaces not just flat squares. My Stable Fluids solver provides the fluid dynamics and the exact evaluation allows these flows to be mapped to arbitrary Catmull-Clark surfaces. These maps introduce metrics so the Navier-Stokes equations have to be generalized somewhat. Also patch to patch boundaries are somewhat tricky to implement. This paper is a nice combination of cool math and fun coding.


Adrien Treuille, Antoine McNamara, Zoran Popovic, Jos Stam (2003)

pp. 716-723

In 2002 my company Alias|wavefront closed our Seattle office. I then worked from my loft in Pioneer Square but also hung out at the University of Washington. There I got in touch with Zoran and AA. Zoran proposed to control fluids. I thought he was crazy at first. But AA convinced me otherwise and I ended up coding my own version once I knew it was possible. Unlike what is described in the paper I used some form of automatic differentiation. I also translated the bfgs solver to C using f2c. I also used this framework to control a simple rigid body.


Jos Stam (2003)

GDC 2003 Conference proceedings:
Game Developers Conference

In 2002 my company asked me to submit something about fluids to the annual Gamer Conference. I had been coding on small devices and considerably simplified my code. I brought it down to roughly 100 lines of readable and self-contained C code. I included it in my GDC paper and on the accompanying CD. There is no more arguing whether Stable Fluids is easy to implement. Download and try it at home. Still some people complained I didn't include a Makefile. I wish most papers would release some sort of simple code of their technique to get people started.


Jos Stam (2001)

Journal of Graphics Tools
November 2001, 6(2)
pp. 43-52

Sometimes equations are simpler in the Fourier Domain instead of the spatial domain we are used to. Advection is better solved in the spatial domain while viscosity and incompressibility are better solved in the Fourier domain. The solver therefore needs to travel back and forth between these two domains. This is done via the Fast Fourier Transform. This results in a solver of 60 lines of C code. This assumes that you have access to a FFT. In our case we use fftw from MIT as it can handle arbitrary grid sizes and is fast.


Jerome Maillot, Jos Stam (2001)

Computer Graphics Forum (Eurographics Proceedings)
September 2001, 20(3)
pp. 471-479 

This is mostly Jerome's work. He was inspired by my paper on subdivision surfaces of arbitrary degree and the separation between topological subdivision and smoothing. I had some talks with him when in Toronto and we wrote the paper together. He implemented it in MAYA. This scheme is available in the poly smooth tools.


Ronald Fedkiw, Jos Stam, Henrik Wann Jensen (2001)

SIGGRAPH 2001 Conference proceedings:
SIGGRAPH Annual Conference Series
pp. 15-22  

After I presented my fluid demos at a SIGGRAPH 2000 course I was approached by Ron. That was the first tim I met him and he showed me some vorticity confinement demos. We decided to combine our works. I spent a day in Stanford and that was enough to outline the paper and demos. Ron gave me a deal: "I am first author and you give the presentation." In fact that worked out for me as I got to show my PocketPC demo in front of a large audience. This was back when your face was projected on a big screen. I lifted up the device and the camera zoomed in.  This wasn't in the least rehearsed.


Jos Stam (2001)

EGWR 2001 Conference proceedings:
EUROGRAPHICS Workshop on Rendering
pp. 39-52 

Back in 1997 I started to work on a skin shader. I did a lot of research. Reading books and articles in optics and engineering. Radiative Transfer by Chandrasekhar is a classic. I also wrote Monte Carlo like simulations to get intuitions and use it as a ground truth to validate analytical models. I really hoped to find a closed form solution. The model I came up with is almost analytical. Some parts have to be precomputed unfortunately. Something that is not emphasized in the paper is that it proposes a BDTF for the distribution of refracted light into the skin. Many people told me that that could have been a contribution on its own. Working on this paper was a lot of work. It seems that Henrik's BSSRDF skin shaders have been more popular in practice.


Jos Stam (2001)

Computer Aided Geometric Design
March 2001, 18
pp. 383-396 

The basic idea behind this paper occurred to me when I was eating a burrito for lunch in a mexican joint on third avenue in Seattle. Back then I was thinking about smoothness of subdivision surfaces near extraordinary points. I thought generalizations of spline surface of higher degree might do the trick. The solution is remarkably simple. Perform one linear split followed by k-1 smoothing steps. Where k is the degree of the spline. Just Lane-Riesenfeld but for surfaces. One can do a little better by treating the odd and even degree cases separately. Oh by the way it doesn't solve the second order smoothness at extraordinary vertices.


Jos Stam (2000)

Communications of the ACM
July 01, 2000
pp. 76-83   

In late 1999 the communications of the ACM contacted me to write an article about my new fluid solver. This was the first time I had to deal with a real editor who basically was in charge of the final look and figures. I provided the text. I felt flattered as this journal is sent to every member of ACM. Not that everyone necessarily reads it.


Jos Stam (1999)

SIGGRAPH 1999 Conference proceedings:
SIGGRAPH Annual Conference Series
pp. 101-110 

This research started in 1997 when I first arrived in Seattle. I got an e-mail from someone in Spain asking me about wave theory. For some reason I started reading Kajiya's article on anisotropic shading which starts from the Kirchhoff integral. When looking at the integral I thought ok so now Kajiya is going to take a Fourier Transform. No, why not? That was the seed for this research. I worked out the math with this insight and derived a generalization of Beckmann's distribution to anisotropic surfaces and derived a shading model for diffraction. I spent a lot of time trying to understand the step from waves to radiance. This is actually quite subtle and involves coherence, i.e., correlations. Recently this has been elucidated in the computer graphics literature somewhat through Wigner Distributions. These questions took a lot of my time. I am surprised to see that recently there is a renewed interest in diffraction. There was even a session at SIGGRAPH recently where each talk referenced this paper.


Jos Stam (1999)

SIGGRAPH 1999 Conference proceedings:
SIGGRAPH Annual Conference Series
pp. 121-128 

All right so this is probably my most cited paper. It was however the paper with the lowest scores that got accepted that year at SIGGRAPH. That is a story I like to tell. It is actually very telling that impact papers usually get low scores and get rejected. I was lucky that some people believed in the paper on the committee. I first got this to work in 1997 when I just moved to Seattle and started to play with some code I wrote in Finland. The code solved for the motion of a density given a kinetic velocity field. Then I just boldly applied the same technique to the velocity field itself making it dynamic. It took no time to code and it worked right away. Real-time fluids! You can imagine my excitement. Research code usually doesn't work right away, certainly not the first time you run it. When research code doesn't work you are faced with a dilemma. Either it is a bug or your idea is flawed. This is not always easy to decide in practice. When you implement a known technique that you know works then you know it is a bug in your code. Well sometimes you might run into a flaw of the technique. The presentation at SIGGRAPH was rock and roll. I took a cab with an sgi Octane down to the convention center and we switched a defective  graphics card the night before. But in the end it all worked out and I was able to show for the first time real-time fluid simulations in front of a large audience.


Jos Stam (1999)

SIGGRAPH Course Note
August 01, 1999

This paper applies the same ideas that worked for evaluating Camull-Clark surfaces to Loop triangular surfaces. The differences are in the details. I did not think it was worth a separate publication. Besides I was busy with fluids and shading models.


Jos Stam (1999)

SIGGRAPH Course Note
August 01, 1999

This is the course version of my 1998 paper on exact evaluation.


Jos Stam (1998)

SIGGRAPH 1998 Conference proceedings:
SIGGRAPH Annual Conference Series
pp. 395-404 

When I moved from Finland to Seattle in 1997 I decided I wanted to work on something new in a new city. I joined the Alias|wavefront office in downtown Seattle. This office was great as it was packed mostly with mathematicians. Of course Seattle back then was cool as it was just recovering from caffeine and grunge music. In the office they were working on something called subdivision surfaces. I had never ever heard of them. The team brought me up to speed and did not mind all my naive questions. What I learned is that away from extraordinary vertices the surfaces are just regular B-spline surfaces and eigenanalysis is important to understand subdivision. That was stuff I could relate to. Most people at the time only focused on the first three dominant eigenvectors near an extraordinary vertex. At this time I was working on the camera ready version of my Eurographics paper on modeling the motion of trees (see below). It uses modal analysis which is the same as eigenanalysis. That gave me the idea to use the entire spectrum of the subdivision matrix to get evaluation. It turns out you get a new set of basis functions near extraordinary vertices. They depend on the valence. I remember writing it down on my white board in my office on a Friday morning. I proudly showed it to my coworkers. Most of them were skeptical since it was believed at the time that subdivision surfaces could not be evaluated. I had no idea. Anyway it took another few months to work through all the math. The paper got easily accepted at SIGGRAPH with very high scores. You can't argue with math. That started my career in subdivision. I got two technical academy awards for my work in 2006 and 2019 both times with Ed Catmull and Tony de Rose from Pixar.


Jos Stam (1997)

Computer Graphics Forum (Eurographics Proceedings)
September 1997, 16(3)
pp. 159-164  

This research was done when I was doing a post-doc at INRIA just outside of Paris in 1995-96. I wanted to apply some of the ideas of my PhD thesis to dynamics. The general idea can be formulated as follows. If a certain phenomenon is dependent on a source of randomness then its resulting behavior will be random. The idea is to synthesize the behavior directly without the input noise. We relate the input statistics directly to the the output statistics through an analytical derivation. In this work I applied this to the random motion of trees swaying in the wind. The cool thing is that the resulting motions are periodic in time. Roughly the space-time motion is transformed into a model-frequency domain. And the noise is generated there. The dynamics therefore act as a filter.


Jos Stam (1997)

ERCIM Research Report
January 01, 1997

I did this research during the long and dark winter in Helsinki, Finland. The density advection part was written in Paris. At the Finnish lab I got 3 hours to code on an sgi indigo each day. I had to power code to get all the graphics stuff done. The rest of the day I would read papers and work on other stuff. I wrote a modeling system for gaseous phenomena. The velocity was modele by a set of global primitives and the small scales came from a turbulent function. The density of smoke was then advected using a stable integration scheme which I called method of characteristics. It is now known as semi-Lagrangian. Yes this was the precursor to my popular Stable Fluids algorithm. The seeds were planted in this paper. It got rejected at SIGGRAPH, it got the "system paper kiss of death" treatment. Hence it was published as a tech report.


Jos Stam (1997)

ERCIM Research Report
January 01, 1997

Another piece of research made in Finland. The inspiration came from a chat I had with my friend Mike van de Panne when I was s in transit from Helsinki to New Orleans in Toronto. He suggested to me the problem of tiling textures in a random manner. He used as an example a dress of his wife. Back in Finland I spent some time in my favorite library and educated myself on tilings. Grunbaum's Tilings and Patterns was particularly helpful. Then I coded it all up and applied it to the problem of creating caustic tilings. I submitted it to SIGGRAPH and it got rejected. I still remember the comment from one reviewer: "This is so simple how come I did not think about it?" and then proceeded to give the paper a low score. That was actually a huge compliment. Anyway the research was published as a tech report.


Jos Stam (1996)

SIGGRAPH Technical Sketch
August 01, 1996

This research was inspired by two old SIGGRAPH papers: "3D Graphics and the Wave Theory" by Moravec (1981) and "Intensity Fluctuations and Natural Texturing" by Krueger (1988). Good old days where this kind of stuff got into SIGGRAPH. The idea was to create random caustics directly as natural textures using the wave theory of light. I got some pretty funky results. The diffraction patterns are unrealistic because the frequencies used are too small. More like a sound wave. The first version of the paper got rejected at the workshop on rendering. All the better since I submitted it as a sketch for SIGGRAPH. The travel policy of the Finnish lab was that they would pay for conference trips if you had a publication. I flew to New Orleans with a stopover in Toronto where I gave a talk entitled "Stochastic Transformations."


Jos Stam, Eric Languenou (1996)
EGWR 1996 Conference proceedings:
EUROGRAPHICS Workshop on Rendering
pp. 225-234 

After I gave my talk on fire at SIGGRAPH 1995 a lot of people told me that the shimmering effects due to heat were missing from the simulations. One of these people was Eric who was a postdoc from France at our lab. We decided to do something about it. I basically went ahead and studied the eikonal equation that describes the evolution of light in media with varying indices of refraction. Instead of travelling in straight lines light can bend and trace out arbitrary curves. The eikonal equation can be derived from a limiting case of wave theory. That was my first exposure to light waves in computer graphics.


Jos Stam (1996)

INRIA Research Report
March 01, 1996

This paper is discussed above. I published this tech report because the first version was rejected at SIGGRAPH.


Jos Stam, Eugene Fiume (1995)
SIGGRAPH 1995 Conference proceedings:
SIGGRAPH Annual Conference Series
pp. 129-136 

This paper was my last paper from my PhD years in Toronto under the supervision of Eugene. It describes a model using warped blobs and turbulent wind fields to model fire and wispy smoke. The paper also contains a global rendering model based on diffusion solved on blobs. It loosely follows a SPH formalism. In those days submissions were a lot of work as you had to submit a printed version of the paper. The pictures had to be manually pasted on the pages. These pictures were usually photographs of screen shots. After taking the pictures I took my negatives to a place in China Town. When I came back to pick up the developed photographs the clerk asked me where I had taken these crazy pictures. Yes! My research had just passed the visual Turing test.


Jos Stam (1995)

EGWR 1995 Conference proceedings:
EUROGRAPHICS Workshop on Rendering
pp. 51-58 

This paper turns global illumination into a local diffusion problem under some limiting assumptions. Why is this cool? Diffusion equations are easier to solve than integral equations. Care has to be taken with boundaries however. In this paper we solve the diffusion equation using multi-grid to accelerate convergence. So the local is not really local after all. To understand this consider the Green function of the diffusion equation which is global. Recently there has been some interest in this approximation. When in Beijing for Pacific Graphics 2015 there was a talk where they used an advection diffusion equation instead. The vector field was defined by the gradient of the radiance.


Jos Stam (1995)

Ph.D. Thesis, Department of Computer Science, University of Toronto
June 1995

My PhD thesis! 4 years of slacking in Toronto and working on fun stuff. I wrote the entire thesis in one month working everyday day. I had no choice because the committee could only meet on one particular day before I started my postdoc in Paris. The biggest challenge was to get 5 academics in one room at the same time! Nelson Max was my external and did a fantastic job.


Jos Stam (1994)

GI 1994 Conference proceedings:
Graphics Interface Conference
pp. 51-58

In this research I I explore an alternative to rendering random density fields. Instead of adding the noise to the average density and then rendering we synthesize the noise directly in the image plane. The statistics are derived from the volume rendering equation. We use quasi homogeneous random functions with an average density given by a superposition of "blobs."


Jos Stam and Eugene Fiume (1993)

SIGGRAPH 1993 Conference proceedings:
SIGGRAPH Annual Conference Series
pp. 369-376 

My first SIGGRAPH paper! I had the key idea for this paper in the fall of 1992. I was thinking of extending Fourier synthesis techniques to generate vector fields. This is of course a trivial extension of the scalar case. Just synthesize three (two) times to generate the components of the vector field. One gets interesting fields by imposing a constraint on the vectors. For wind fields a natural constraint is that the field should be incompressible: at each point of the flow the inflow equals the outflow. Visually this results in nice swirly looking flows. By adding time one gets a vector field that is periodic both in space and time. This is great as you obtain a field for each point in space and in time. The periodic artifacts are not visible since the flow is used to move things like particles and density around. I used blobs of density to create smoke simulations.


Jos Stam and Eugene Fiume (1991)

GI 1991 Conference proceedings:
Graphics Interface Conference
pp. 24-31

This is my first published paper with Eugene. It grew out of a project I did for Demetri Terzopoulos' course on "Visual Modeling." This was also my first talk at a conference.


Jos Stam (1991)

M.Sc. Thesis, Department of Computer Science, University of Toronto
June 1991
59 pages 

Excerpt from the Acknowledgments. "Thanks to all my new friends in Toronto without whom this thesis would have been finished suspiciously early." Indeed I think this is one of the shortest thesis produced by the Dynamics Graphics Project.


Jos Stam (1988)

Licence Thesis (B.Sc.), University of Geneva
October 1988
50 pages 

I did this research when I was studying computer science and Mathematics at the University of Geneva in Switzerland. It is in french but there is also a paper in English and C code. Even back then I liked to include code with my publications. The paper in english is titled "Ray Tracing Polynomial Patches Using Groebner Bases." The paper uses Kajiya's approach of treating the ray surface problem as an algebraic system, Groebner Bases allow you to reduce such systems (it finds regularities) to simpler equation. In the end you get a univariate polynomial which I solved using Sturm's method. This work got a researcher at the lab called Xavier Pintado excited and I was already dreaming of my first SIGGRAPH paper. Alas the method suffers from numerical instabilities and I never submitted it anywhere. On the brighter side Xavier knew Eugene and introduced me to him when he was visiting the lab in Geneva. In 1988 I visited Eugene and Alain Fournier in Toronto. They generously spent half a day talking to me. Alain gave me a whole bunch of papers to read. The next year I started my grad studies at the University of Toronto.

bottom of page