Titanic, the movie, was released 25 years ago.

47 views
Skip to first unread message

Matthias Melcher

unread,
Nov 10, 2022, 4:45:30 AM11/10/22
to fltk.general
During the months of November and December 1997, the movie Titanic by James Cameron was released to the world. It was nominated for 14 academy awards and won eleven.

FLTK played a major role in Titanic. Digital Domain, the company that made the special effects for the movie, was facing many challenges when producing high resolution images on SGI machines. The machines were running Iris and X11 and had the huge (today tiny) amount of 40MB RAM.

Creating a singe frame took up to 100 layers of uncompressed image data. Compositing was done in rgb floating point space to minimise losses. So to be able to handle multiple images with sizes of 35MB on a 40MB machine, Bill had the idea to do compositing line-byline instead of frame-by-frame.

This sounds obvious in retrospect, but gets very complex when images are rotated, scaled, blurred ore whatever artists come up with, so that images don't map to another per line. It had never been done before, it was true pioneer work and was a major factor in making special effects of the required complexity possible in Titanic.

Bill implemented his technique in the compositing app "Nuke". But Nuke needed a UI, and on SGI's Iris, there was only Forms, which  was not powerful enough, and Motif, which required the payment of steep licensing fees. So Bill sat down in his spare time and built an alternative, FLTK.

FLTK was inspired by the Forms Library API (get it? Forms Library, "F"orms "L"ibrary, "FL"), but Forms was built on top of Irix GL, the predecessor of OpenGL, limiting it to run on SGI machines. A few years later, Forms was ported to X11, but by then, FLTK was already much more powerful.

I joined Digital Domain shortly before Titanic was ramping up. My first job was facial animation for "Avatar", but Cameron flipped Avatar with Titanic, so my job changed, and I helped with Nuke. Around that time Microsoft released Windows NT 4.0. And at least for small jobs, Windows NT was capable enough to replace the extremely expensive SGI machines. But would it run Nuke? Management said no, so I sat done at home in my free time and ported FLTK to Windows. As the rest of Nuke was platform agnostic, the remaining port was easy, and soon it ran perfectly fine on NT, saving the company a lot of money.

I was starting to use FLTK for my own little tools, became fascinated by Apple, and ported the library to MacOS Classic, later Carbon. I haphazardly ported to OS X Cocoa, but Manolo eventually refined the port and make it stable.

Nuke earned Digital Domain the Academy Award for Technical Acheivement. The source code was eventually bought by The Foundry, and Nuke is still one of the great compositing tools in the F/X industry, albeit without FLTK inside. 

Bill, I hope I remebered everything right.  Please correct me if needed. Either way, happy 25 year anniversary of Titanic, and with it, happy 25plus year anniversary to FLTK!

  - Matthias

wea...@gmail.com

unread,
Nov 10, 2022, 5:01:49 AM11/10/22
to fltk.general
Excuse my language, but this sounds fckn awesome! Great Job.

On Thursday, November 10, 2022 at 10:45:30 AM UTC+1 Matthias Melcher wrote:
During the months of November and December 1997, the movie Titanic by James Cameron was released to the world. It was nominated for 14 academy awards and won eleven.

FLTK played a major role in Titanic. Digital Domain, the company that made the special effects for the movie, was facing many challenges when producing high resolution images on SGI machines. The machines were running Iris and X11 and had the huge (today tiny) amount of 40MB RAM.
Isn't it IRIX? (Later you mention also IRIX). 

Greg Ercolano

unread,
Nov 10, 2022, 9:06:50 AM11/10/22
to fltkg...@googlegroups.com

Oh man, 25 yrs? Feelin old, lol.
For the sake of history, I'll throw in my 2cents..

[matt] The machines were running Iris and X11 and had the huge (today tiny) amount of 40MB RAM.
[weanti] Isn't it IRIX? (Later you mention also IRIX).

Yes, he means IRIX.

Iris is also in our brains because SGI's early models were named Iris supersceded
later by all their more specific hip model names.

Digital Domain may have had a Personal Iris or two lying around (can't remember),
but because DD was a company started in 1992 (I think?), they started with whatever
equipment was current at the time, and I think Personal Iris's were getting to be old
products at that point, as SGI was making large product improvements quickly
in the early and mid 90s. So mostly I think we had Indys, Indigos, and then those
big Challenge machines that Shoshana at Matt (Coohill) were able to wrangle into
shape as backbone servers for each network segment, with about 8 or 10 workstations
hanging off each segment  if memory serves.

Probably some other models too; basically anything and everything SGI was making
in those days. Those large machines had fiber backbones, were the size of
refrigerators, and were all named after hockey teams; maple-leafs, mighty-ducks,
blackhawks, penguins, sharks, etc.

The smaller machines were all out at the desks and had those massive SGI monitors
that were heavy as f*ck. I can't remember, but I think certain people had the consoles
for the big servers, which had multiple processors. Those were TDs that needed the
multicore power, and local access to the disks.

Pretty sure by that time everyone was running IRIX with X windows, and the older
PostScript based window manager that SGI had been using previously had finally
gone the way of the dodo by then, hence the need for us upgrading from Forms
to Xforms around that time. (below)

FLTK was inspired by the Forms Library API (get it? Forms Library, "F"orms "L"ibrary, "FL"), but Forms was built on top of Irix GL, the predecessor of OpenGL, limiting it to run on SGI machines. A few years later, Forms was ported to X11, but by then, FLTK was already much more powerful.

    Yes, Xforms is what I used to write the GUI front end for the distributed render queue ("race")
    at the time. One of the TDs had previously thrown a GUI together in Tcl/Tk called 'racecar',
    and I ported that to C++ with Xforms, as I was already familiar with Forms from previous
    employment. Xforms had a C interface, and the guy who wrote Xforms did not release
    the source code at the time, which I think was a problem for us, Bill in particular, who
    was working on the GUI intensive Nuke compositing software and I think he needed to
    add features that Xforms didn't have, and also needed a C++ API for proper widget
    inheritance, etc. Since he had a lot of experience having previous working at Sun
    on their window manager (again, if memory serves), so he knew a lot about the
    window manager and GUI programming enough to write FLTK.

..Nuke is still one of the great compositing tools in the F/X industry, albeit without FLTK inside.

    Yes, IIRC while Bill moved to the foundry with Nuke, I think it was realized FLTK 2
    was needed, and there was a team of folks working on that, but I think after much
    development, it was decided at the Foundry to use Qt instead of develop FLTK 2,
    so they ported Nuke to Qt, and this took the wind out of the sails for FLTK 2 development,
    and it simply dried up, as I *think* (?) most if not all the devs on FLTK 2 were also
    working at the Foundry. (There might have been a few folks also working on it
    from the open source community, but I was never sure actually!)

    So FLTK 1.x development continues (which was used in those early versions
    of Nuke that were before the Qt port) because a lot of developers were using
    FLTK in their commercial products (myself included).

Greg Ercolano

unread,
Nov 10, 2022, 9:24:03 AM11/10/22
to fltk.general
Oh, and I should add, all during the early 2000's ILM was internally using FLTK for development of many of their gui based internal production tools, in particular their image playback tool for playing back hires image sequences.

I recall speaking off-list to one of the ILM devs, as they were trying to keep the internal use of FLTK hush-hush.
But I learned later this was already public knowledge in this Linux Journal article (that one dated July 2002) by Robin Rowe, who I think is still on the list here.

There's also this short Linux Journal blurb from an interview with Bill that has some historical info on FLTK; Matt, you're mentioned regarding the Windows port. That blurb also mentions ILM and Sony using FLTK, along with some details about FLTK 2. Based on the text, it sounds like this blurb was from the mid-2000's, after FLTK2 development had stopped.

Pierre Jasmin

unread,
Nov 10, 2022, 10:31:09 AM11/10/22
to fltk.general
I am under the impression that I used it 1994-2002 about for my particle system (with OpenGL rendering) - I had used IRIX GL prior to that and Forms.  My app was a sort of application building framework that used dynamic libraries that tightly binded parameters and FTLK widgets with a file format saving key-frames... Each module was independent and  one could cut and paste the Input, Output, Particle generation, animation, rendering, image processing modules with a project file that linked to the latest dynamic libraries (often per shot customization, used it in a number of movies). 

Anyhow seems it was released before 1998, I think Bill sent me initially a first build way before that. Might have been 0.9 (0.91, 0.92)... I lost all backups of that after two SGI last died... 

FLTK saved my life early on...  Still use it (link to it) in our products for popup modal stuff in installer, activation and panels to load and save etc (to complement what a particular App-API does not support).  We had issues trying to do Qt in some apps where we get into fights of who owns the cursor, and never with FTLK.

Pierre

Matthias Melcher

unread,
Nov 10, 2022, 5:39:14 PM11/10/22
to fltk.general
er...@seriss.com schrieb am Donnerstag, 10. November 2022 um 15:06:50 UTC+1:
[weanti] Isn't it IRIX? (Later you mention also IRIX).
Yes, he means IRIX.
Autocorrect keeps changing IRIX into Iris on my system. I meant to say IRIX. I did work for Softimage before I want to DD, so, yeah, I do remember the Iris's too, just to make things even more complicated ;-)

Thanks, Erco, for the great description. Wonderful time, at least in the rear view mirror. My cousin Philip Cramer still works at DD, so I decided to refer to it as "my family business"... .

Matthias Melcher

unread,
Nov 10, 2022, 6:12:38 PM11/10/22
to fltk.general

Reply all
Reply to author
Forward
0 new messages