Discover the world of science through our interview with Jos Stam. Gain valuable insights into his life and work as a computer graphic researcher. Don't miss this opportunity to learn from one of the brightest minds in the field!


Bio 🌱

Jos Stam was born in the Netherlands and received his education in Switzerland and Canada. Consequently, he is proficient in speaking and writing Dutch, French, and English. Jos possesses skills in computer programming, and mathematical thinking, and tend to dream in images.

Jos further identifies himself as an artist, having sold paintings, a doctor with a Ph.D., an inventor with patented makings, and an author.

Publications | Jos Stam

His professional occupation revolves around research, encompassing various activities such as reading papers and books, engaging with fellow researchers, attending and presenting at global conferences, and navigating the internet. The process involves thinking, experimenting, and coding ideas iteratively, occasionally resulting in code useful to his employer du jour and customers to pay the bills.

Jos's motivation for research stems from both practical problems and pure intellectual curiosity. He believes that practical problems can inspire novel theoretical solutions, and conversely, speculative "pie in the sky" research may lead to practical applications. His research is multi-faceted and cosmopolitan, having conducted studies in cities like Geneva, Toronto, Paris, Helsinki, Seattle, and even during travels in places like Mexico and New Zealand.

In his research endeavours, Jos enjoys combining elements of Art, Mathematics, Science, Computers, and other "cool exotica", as he states.


🌍 Website: https://www.josstam.com

πŸ“– Jos's Book: The Art of Fluid Animation:


Q&A πŸ—£οΈ

Why Computers? πŸ–₯️

Before I started to code I was more interested in drawing, painting and fixing bikes and mopeds. My lowest scores were in math. I mainly drew caricatures and surrealist-style paintings using the airbrush. I even exhibited and sold some of my paintings. Then my older brother convinced me to take a programming course. Cynically saying I could make money. I was hooked after two weeks once I understood the creative potential of programs. This was in 1982. I discovered the beauty of logic and rigorous thinking. I first started coding in BASIC then switched to assembly (Z80) for speed before discovering C. During my high school years, I wrote computer games like a clone of Pac-Man. Because I was using Z80 everything had to be expressed in powers of two, so mults and divs were bitwise shifts.

I also got one of the first Amigas in Switzerland. The graphical capabilities and the beautiful instruction set of the MC68000 got me hooked. Wow, it even had MUL and DIV operations built in, and it handled 32-bit registers! I wrote a chess program that sucked but beat me once I fixed the obvious bugs.

At the same time, I had a very good math teacher in my final high school year who taught us real math. Yeah, things like proof by induction, abstract algebra, and complex numbers. You name it. Suddenly, I was getting the highest grades in the class. I was apparently good at this cool math stuff. I was surprised. I passed my high school exams and went on to study Informatique (Computer Science) at the University of Geneva. I ended up graduating with an extra degree in math just because I was good at it and loved it. I do not regret it, math is forever.


How Did You Get Into Computer Graphics?πŸ‘¨β€πŸ’»

When I got into programming, I was always attracted to games. The interactivity and the graphics, even coarse and pixelated, were attractive to me. Then, when I got the Amiga in 1987, I discovered ray-tracing. All of a sudden, all the effects I struggled with in my airbrush paintings could be solved automatically. Effects like shading, reflections, translucency and, more importantly, perspective were handled automatically by the computer. That was a revelation. Of course, back then, it would take overnight to render a picture. But the potential of this technology was clear.

At the end of my undergraduate studies, a fellow student pointed me to the SIGGRAPH proceedings. Wow. Amazing pictures created with fancy math. That seemed like a perfect area of research. I read the papers and wanted to do research in that area. Turns out that all the research was done in top US universities. I decided to study there and leave Geneva. Long story short. All universities rejected me except for the University of Toronto. The rest is history. I did my Master’s and Ph.D. in Toronto. My wish came true in 1993 when I published my first paper on turbulent wind fields at SIGGRAPH. It so happened that my talk was the last one at the conference, unfortunately.

Some employees of the legendary Toronto company named Alias attended my talk and took notice. Alias subsequently hired me part-time. That is how I got into the computer graphics industry. All of a sudden, I was making more money and, more importantly, got to see my work in movies and found myself working for an awesome company! I worked on Power Animator’s particle system partly based on my Ph.D. work.

After I graduated, Alias offered me a job. I also got an offer for two post-docs in Paris and Helsinki from ERCIM. I told Alias I couldn’t refuse that offer. They were like call us when you are back. So cool. So, I went to INRIA Paris and VTT in Helsinki. In Finland's dark fall and cold winter, I did my research, which eventually led me to my fluid work. After my post-doc, Alias , acquired by Silicon Graphics, offered me a job in their Seattle office in 1997. There I was asked to work on subdivision surfaces and pursued my research on fluids and rendering. I made important contributions in these areas that I presented at SIGGRAPH and eventually received the SIGGRAPH Technical Achievement Award in 2005. And later three technical Oscar awards in 2006, 2008 and 2019.

In 2003 I transferred from Seattle to Toronto. Alias was then acquired by Autodesk in 2006. I stayed at Autodesk until 2018. Since 2019, I am a research scientist at NVIDIA working on Computer Graphics and Machine Learning.


What Drives Your Work? πŸ’‘

It is a mix of pure intellectual curiosity and solving practical problems. Both can be useful to a company and lead to cool publications. I will give you two examples. Firstly, my fluid work came out of pure intellectual curiosity. No one asked me to work on fluids. Of course, I knew it would be a huge potential hit for the company. That is when I wrote my Stable Fluids solver. Published at SIGGRAPH in 1999 and it was eventually implemented in MAYA in 2002 as a major new feature. Secondly, my subdivision work was purely problem-driven. When I came to Seattle, the team there had a long list of things they knew how to do on parametric surfaces like NURBS and wanted them to work on subdivision surfaces. Subdivision surfaces were considered to be weird at the time. Then, I showed that subdivision surfaces are parametric and not weird. I showed that you could evaluate them just like parametric surfaces. This was thought to be impossible at the time. So, I solved all these practical problems and got a seminal paper. So cool math can lead to practical applications, and valuable applications can lead to cool math. It is a win-win situation.


A Typical Day of Jos's β˜€οΈ

To me, ideally, there is no typical day. Each day is an adventure. However, it is good to set goals for each day. Going to an office is a good routine, I think. But so is travelling and meeting new people. There is no typical day for me. A good day, for example, is when I discover a store I walked by for 5 years and never noticed and then walk in and talk to the owner. That made my day.


Is Passion a Prerequisite for Success? πŸ”₯

Passion is ideal. But just wanting to work each day and getting out of bed is already not that bad. That is motivation. Your work environment is also very important. Discipline? Yes, of course it is important. I think, however, that delivery on promises is more important. And, of course, honesty.


What's More Important – Education or Skills & Experience? 🧠

I do not distinguish between education and experience. The word learning is more appropriate. It is an evolving process. It is not because you graduated that you stop educating yourself. Your experience will help you educate yourself more efficiently, and education will help you deal with real-life situations.


How Much Time Do You Spend on a Problem Before Dropping It? 🚫

 I never drop a problem. Instead, I shelve it. I do not obsess about solving a unique problem. I like to have several problems floating around and revisit them now and then. I am talking about research problems here. Sometimes, you do not have that luxury when, for example, you must have software A talk to software B on platform X, and you are on a tight deadline. Talking to others is extremely helpful, especially non-experts, as they will bombard you with β€œstupid”/”good” questions. This also works for fixing bugs, as any good hacker knows. Hacker 1 to Hacker 2: β€œSo here is the code with this crazy bug , and I first define this variable… Oh, never mind, I found the bug; thanks for listening!” Hacker 2 to Hacker 1: β€œYou are welcome, I guess.”


Jos's Main Strengths in a Company πŸ’ͺ🏻

I am an outlier. I usually explore avenues that are not currently on the company’s agenda. On the other hand, I lend my technical expertise to any projects that require it.


Computer Graphics in 5 Years⏳

It is impossible to say with the rapid advances of AI these days. The only certainty is that AI will have a huge impact on almost any aspect of our lives. More specifically, generative content creation will have a considerable impact on computer graphics. It won’t replace artists but will provide them with a broader palette of tools for creation. How to be creative with AI is key, and not let AI take over, which is based on prior art/data.


Top 3 Pieces of Advice to Juniors ☝️

1) Do not make getting awards your goal.

2) Try to work on problems and projects you feel passionate about.

3) Continuously educate yourself.


Most Challenging Project 🎯

Probably the general solver called NUCLEUS used in MAYA. It is a constrained particle solver based on simplicial complexes. So, it can handle shapes of any dimension and their interactions. Think of ropes attached to pieces of cloth that collide with solid objects. The solver handles some soup of constraints that must be satisfied. I use an iterative method ala Gauss-Seidel, but I also implement more sophisticated strategies. I wrote an early cloth demo in 2001. Then, in 2003, I showed a demo at SIGGRAPH. The reaction was very positive, and Alias management asked me to focus all my research on this. Going from a flashy demo to a product feature is far from trivial. Many issues arise from user feedback. One of the toughest was to have collisions be airtight. I used a space-time approach. The devil was in the details: degenerate cases, floating-point weirdness, etc. In the end, we shipped it in 2007.


What Excites You About the Future? πŸŽ‰

Four years ago, I joined NVIDIA as I wanted to work in AI and possibly apply my CG background. Also, conveniently, the Toronto office was specialised in AI. I have been learning enormously from the group there. After a year, I had a publication with Marc Law at NEURIPS, one of the premier AI conferences. The paper was on graph representations involving arbitrary dimensions of time and space. However, most of my recent research has concentrated on computing gradients for learning using the adjoint method. This is a generalization of backpropagation in Neural Networks. I am also interested in reversibility.


If you would love to see other articles, please check them out by clicking the button below!πŸ‘‡

Keep engineering your mind! ❀️

Jousef