View Full Version : FXWars! Roller Coaster!: Frank Firsching

11 November 2004, 12:14 AM

Ok, this is my first attempt on the FXWars challenges. Roller coasters are something that I really couldn't resist. The last day I spent with trying things out and checking, what can be done in which way. This is the result:

Test Movie ( (500k, DivX / Xvid)

It could be a short part of the complete track. Everything in this short movie is procedural. Not only the animation, but the tracks and pillars are built automatically, too. All that is needed as input, is a curve with normals, that describe the orientation of the track. The normal vectors control the rolls and twists.

Until I forget it, this was made using Houdini 7 Apprentice.


11 November 2004, 03:10 AM
Very nice test. Looks like you just have to finish the track and send it in... :thumbsup:

11 November 2004, 05:01 AM

another german dude, and the same approach as our's... argh...

It's going to be hard to win this contest... ;-)

keep up the good work!

11 November 2004, 08:11 AM
Hehe, the German dudes are coming!

Grüße aus Heidelberg!


11 November 2004, 10:13 AM
Thanks for the nice critics :-)

Sir_Vulcan: I don't think it's quite so easy. Till now only the middle wagon is being simulated. The others are simply offset on the curve. This morning I had an idea, how to simulate the effect of all wagons on the train. I want to change this. Additionally I need a lifting mechanism to get the train on the desired height. Plus I need some better models. They are simple stand-ins. So, still something to do.

lalunaverte: I decided to do this approach before I saw your thread. I promise!

11 November 2004, 05:44 PM
I know - I am not complaining.

Anyways. Get back to work!

11 November 2004, 12:41 AM
I like it a lot, It runs real smooth!

11 November 2004, 10:45 AM
Nice one Frank,
Good seeing u again working on some cool stuff.
Expect more.

Cheers NatX

11 November 2004, 10:13 PM
Hey NatX, did I motivate you to sign on to CgTalk? I noticed, this is your first post :wavey:

Here is a small update: Since I'm pretty happy with my dynamics, I concentrated on the coaster generation. My goal is a complete procedural system. Today I have managed to remove intersecting support poles. If you take a look at the image below, you see, that the system is removing one pillar, where the track is passing under another segment of the track. Also the placement of the mountings at the top of the poles now really fits to the track (before, occasionally some poles just didn't want to match the orientation of the track)
Last but not least I have modified my dynamics to do a motorized hill climbing at the beginning. This enables me to do a complete run in one shot without any keyframe :p


11 November 2004, 09:42 AM
Hey NatX, did I motivate you to sign on to CgTalk? I noticed, this is your first post :wavey:

Actualy i signed in a month before you, but i always felt to shy posting here. I'm also more browsing the forums and cgnetwork to get me back inspired.

To your stuff. I like the design, are the poles generated procedural? As u said u had troubles with intersections when tracks passing underneath. I wondered why u were the ohnly one to come up with a dynamic system of a motor. I already started thinking how i would do that, as i just saw rollercoaster animations that seemed to have gravitation and movement along the path

My solution would have been a drag field that lifts the cars up with constant speed, when the coaster enters the field. Show us your playblast or rendered anim!

I like your dynamic work.

11 November 2004, 05:47 AM
How much do you get judged on how procedural it is? I think that's going to be one of the truly remarkable things about your setup. So when are you coming to North America to work? ;)

11 November 2004, 10:54 PM
NatX: Yes the poles are generated procedurally. I only have modeled three parts, that I pass on to the coaster-OP.
The first part will be ray'ed down to the floor and placed there. The middle part is placed on the top of the pole and the third one is oriented towards the track and placed on the middle part.
I want to mention the motor again. This was really simple, because my dynamics are just one expression for the position of the train on the path. I only added a lift-time and up-position. During lift I linearly interpolate the train position from 0 to up-position.
For the playblast you want to see, I'm currently rendering an animation. Tomorrow I will post it. I don't have any other test movies, because my dynamics are running in real time. It is even possible to scrub the timeline and watch the train move on the track. That's something I'm very proud of :-)

@Dante and NatX (but also every other Houdini user): I think I'm gonna put an otl of my coaster-OP on odforce and the SideFX-exchange when the competition is over.

Ok, enough said, here are some images of what I was doing today:
This is a small test coaster I build. It will not be the one I submit for the final animation.

And these are the new wagons. Additionally to the modeling I enhanced the placement of the cars. They are now mounted better on the track. Both, the front and backwheels now determine the orientation of the car.

Now, I'm thinking about the next step I should do. The scene really needs some shaders. This dull gray is looking very boring. But I also have another great idea, I would like to do (and I think the time is to short to do both, the shaders and the following idea): I would like to occupy the cars with people and animate them procedurally, too. They should raise their hands, if the coaster is going down a hill, lean into a curve, etc. I think that this would be doable (and would fit quite more to the challenge than shaders).

11 November 2004, 11:42 PM
Looking really nice and effective. Do you still only simulate one car and the others follow?
The scrubbing sounds strange. Do you recalculate the entire run from the beginning to get the actual position? Especially if you scrub backwards.

And one thing that is still missing: loopings ;) No modern coaster without 'em.

Another thing I think would improve the looks would be dividing your poles, if they get too long. With bigger segments at the bottom.

:applause: Really promising stuff.

11 November 2004, 11:50 PM
Colts suggestions are good, but as i know you, you already have crazy loops and twists in your coaster planned.

Besides that, everything looks good and sounds great. Hope you render multiple views, as i wanna take that ride!

Mr Moose
11 November 2004, 02:31 AM
Looking real nice Frank. As dantea says, hopefully everyone will appreciate the extra effort you've gone to in making this setup completely procedural...even though there's no strict category to gain bonus browny points in with it. Perhaps, if you've got screen capture s/w you could post a short avi of the hda in action, just to emphasise the power of Houdini - at the very least I'm sure others will be interested in seeing this.

Looking foward to taking a closer look at the hda when you release it.

Good luck :)

11 November 2004, 02:39 AM
@Colt: I think there's already a loop in the first test animation movie.

@Frank: At this point, I guess you want to concentrate on what gives you the best bang for buck in terms of judging.

11 November 2004, 06:26 AM
@Colt: Yes, loops and twists will be in the coaster for the final version. My first test-video has a loop.
About your question for the dynamics: I have an expression, that computes the position of the train at time t. So even while playing forwards, the whole dynamic simulation up to that point will be calculated. I wanted to do an incremental simulation, but the evaluation order of CHOP-networks in houdini forced me to do it that way. But that's ok, since it is running smooth, even on my old P3 800MHz. The expression itself computes the position of the last wagon, but considers the effect of all cars on the train. My first test video didn't have this "enhanced" dynamics.
I think, that those long poles don't look very good, too. But splitting them up at the bottom would complicate things too much. Then you couldn't handle intersections with other poles or the track anymore. At least not so easily ;)

11 November 2004, 12:21 PM
Here is a quick update:
The rendering finished and this is the video:

TestMovie 2 (

I realized, that balancing drag, gravity, etc so that the train comes nearly to stop at the hill, where the on-train-cam blends into the static-cam doesn't look realistic. An engineer could never balance the forces with the drag in such a precise manner.

11 November 2004, 01:42 PM
great work, but it seems to be a little slow.

11 November 2004, 06:38 PM
Yeah, it does seem very very slow!
I mean it looks like you are going down almost 90°, but it's so slow. Maybe u need to increase the mass of the coaster.
Also what is missing are the loopings and twists.
What could also help to see/notice the speed better is a cam on the very front wagon with showing part of the track. And render with motionblur. I know it costs rendertime, but for the right feeling u need it.

Cheers NatX

11 November 2004, 08:26 PM
Yeah, it does seem very very slow!
I mean it looks like you are going down almost 90°, but it's so slow. Maybe u need to increase the mass of the coaster.

The reason therefor is the short length of the track. The first wagon is almost down the hill, when the last one is just at the top of the hill. Remember this is a (really quickly drawn) test track.

And render with motionblur. I know it costs rendertime, but for the right feeling u need it.

For these 713 frames my (too) old computer computed a whole day :-( I think, that I'm gonna render the final animation on some machines at university doing a 3D motion blur or do a fast 2D-blur.

12 December 2004, 08:16 PM
Well, here is my final animaton. Since I don't have access to the Sorenson pro codec, I had to compress my movies with the standard edition (which has no way to control the encoding). Therefore I provide some alternative AVI-files using xvid/divx codecs. The quicktimes are 320x240 and the AVIs are 640x480 (bigger image size and smaller file size :argh: ).

Edit: CoryC has recompressed my DivX videos using the Sorenson Pro Codec.Thank you very much! The links now point to the new versions.

Complete ride of the rollercoaster with an on-wagon cam:
Quicktime (8.8 MB) (
avi (19.6 MB) (

A short piece of the track from a 3rd person view
Quicktime (2.1 MB) (
avi (6.8 MB) (

A wireframe view (simplified geometry as seen in the viewport of Houdini)
Quicktime (4.4 MB) (
avi (2.9 MB) (

And the last video shows the procedural pillar generation. The distance between the pillars is decreased over time. The track crosses itself and the pylon, that would cross the lower piece of the track will be removed, if it would intersect it. In the background you see some other pillars removed, too. This is due to the fact, that two pillars would stand too close together in the hard turn of the track. Then one of them will be removed.

Quicktime (0.5 MB) (
avi (0.5 MB) (

Completly procedural roller coaster system (animation and build up).
Interactive simulation (including scrubbing of the timeline and adjusting simulation parameters like gravity in realtime). This is a great advantage: You can view the end of the animation and tune the drag coefficient, so that the coaster is just about the reach the end of the track and not stick somewhere in a minimum.
Not a single keyframe set (except in the 3rd person movie for the camera)
Animation length 1685 frames.
Animation length 1min 7 sec.

Here are the four steps how to build a coaster (shown using the short piece of track of my first test animation):

1st step: Draw a NURBS curve:

2nd step:
Apply an operator, that starts the orientation editing. Here the coaster is always oriented upwards (even in the top of the looping).

3rd step:
Orient the small u-shaped objects to resemble the orientation of the coaster you want (create loopings, twists, ...)

4th step:
Apply again an operator, that recreates the curve you have drawn. This time the curve has a point attribute coaster_orientation. This tells the build system how to orient the tracks.

The rest is all procedural. The coaster is made of some basic building blocks:
which will be place at the appropriate positions and orientations.

12 December 2004, 09:48 PM
Wow! Wow! Wow!
This is great! I love it! Wonderful piece of work. Absolut no crits. I'm astonished.
I'll check now others to see if someone is better, but i've never expected anything close to that.
Thumbs are up and i'm beat.

Mr Moose
12 December 2004, 01:28 AM
You Houdini Master you. :)

This is great stuff - it looks really impressive. And to think that now the hard work is done, it wouldn't take much to lay out a new track and have everything fall into place.

The only thing I can spot is something wacky going on at around 35secs in the Full.avi (some sort of brief intersection or something).

12 December 2004, 04:42 AM
Amazing ... I love the shaking that you added!

12 December 2004, 07:07 PM
Very well done, I like the design of the track. But to me it still feels a little slow, maybe it just because your track is spread out more and you dont have anything flying past the coaster.
The wire frame video feels faster, but there the same, I dont know...

Anyways, great job. I like it alot

12 December 2004, 09:52 PM
Vulcan has a point.

This was beautifully done, but it really doesn't seem quick (final render). I think because it lacks landscape. You won't believe what props can do outside the coaster to give it a sense of extreme. It needs something to whip pass. Beautiful coaster layout, but not adventerous due to the fact I can not sense the speed and vertigo.

12 December 2004, 12:09 AM
Frank, check your PMs

12 December 2004, 07:28 AM
Thanks for the nice crits. Concerning the "slowness", I think, that it has to do with the missing props, too. You don't really have a sense of size in the video. But unfortunately I only had one evening to build the final coaster, since I posted my last test video (including the fixing of some numeric instability problems, see below). So all the plans I had, had to be skipped :-( Perhaps I'm gonna do another version of it next year (with better environment and people sitting on the train).
Another problem with the video is, that I couldn't render with motion blur (would have taken too long).

@dante: Yes, the shaking :-) I'm glad you like it. It was unintented. It results from instable numeric calculations due to the length of the track. That was really a problem: Till this final coaster I always used the path animation functions Houdini provided. I think houdini has some hard coded derivation scheme build in to compute the orientation of the object on the path. This was much too unstable to compute the orientation of the train on the track. On hard turns, the cars were rotated up to 90 degrees off of the track. So I had to do my own stuff. I'm glad Houdini is so flexible to support such things.

12 December 2004, 11:34 AM
Deadlines and personal time has it toll, I understand, Frank. It was a pleasure to see what you have finished, though. An inspiration for many newbies on learning the craft. People such as myself wouldn't know the first thing to do to achieve what you have, only give a personal perspective.

Keep it up, and I would love to see this finished soon. I'm sure it'll be a blast!

12 December 2004, 02:04 AM
Wow, very impressive! Lot's of fun!! You procedural guys rock.

12 December 2004, 03:16 PM
Really well done Franck!

I am wondering how did your lighting? Is it HDR? How do you manage to create that lighting?!

Your Sim is really nice!

Houdini is so interesting!

12 December 2004, 11:03 PM
Really well done Franck!

I am wondering how did your lighting? Is it HDR? How do you manage to create that lighting?!

Your Sim is really nice!

Houdini is so interesting!
Thanks you like it :-)
The lighting is nothing special. Just a simple three light setup using a yellowish key light and a bluish fill light. It's funny how much you get used to all those hdri images all-around. Everytime you see an image of gray objects under a colored sky, you think, that this must be an hdri rendering... :rolleyes:

12 December 2004, 10:59 AM
loved it! simulation feels very real

12 December 2004, 08:38 PM
Frank have you posted this on sidefx's website or on if not you should. Very nice job.

Nate Nesler

12 December 2004, 11:32 PM
Excellent work. This peice is simply blowing my mind. You've actually captured the feeling of "nausea" I get when riding coasters. I actually get a little seasick watching!


12 December 2004, 07:42 AM
great job frank !!

12 December 2004, 10:56 AM
How wonderful 3D is!

12 December 2004, 05:14 PM
Great work! :bowdown: And thanks for the AVI! Because MOV is the natural enemy of (my) Windows. ;)

CGTalk Moderation
01 January 2006, 07:00 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.