kaveh808
3D: Maya (starting with a beta version) Rendering: Pixar Renderman (prman) Compositing: Shake Hardware: SGI Octane workstations Renderfarm: Pentium 2 boxes
We were working with very early (beta) versions of Maya running on Silicon Graphics workstations. My team developed software for simulating hair and clothing, deformation and surface refinement tools, and anything else required to generate "photorealistic" humans.
As most things with my career, there were fortuitous coincidences. I was working on early hair and cloth simulation at a startup in Montreal and someone I briefly crossed paths with ended up at Square USA and recommended me to the company. The industry was very different 30 years ago: there were very few people working on things such as CG hair and cloth.
I am now teaching computer graphics at the University of Hawaii. Passing on what I know to the new generation.
It remains to be seen what the impact of AI will be on the industry and art form. I am currently creating a new course on AI and animation to be taught next year.
The Honolulu studio produced FF:TSW and "Final Flight of the Osiris", a short for the "Animatrix" anthology.
The lack of commercial success of FF:TSW led to the Honolulu studio being closed down. The staff spread out through the CG industry and took with them the lessons from the project.
AMA – "Final Fantasy: The Spirits Within", milestone in CGI, is 25 years old
It might be fun to reflect on the creation of [0] 25 years ago. The project was the first attempt at producing and entire feature film with "photorealistic" human characters using CG.I was R&D lead on the project, and it has been fun to see how the technology has evolved over the years. Happy to do my best to answer any questions people may have.[0]...
My implementation was based on David Rogers' "Procedural Elements for Computer Graphics", one of only two texts available on 3D graphics, the other being Foley and VanDam.
I remember managing my own stack in a language which didn't support recursion. I learned a lot. Good times.
[0] https://medium.com/@kaveh808/8-summer-at-xerox-in-24-bit-col...
This process can continue for days.
There are times when I need to relaunch my Slime/SBCL and start fresh. These are usually cases where I do some refactor that eliminates some functions, or when a bug causes crashes and I feel it would be cleaner to start fresh.
All pretty common sense.
I never save my Lisp image and relaunch it. Maybe I would if I was delivering binaries, but my project is open source.
The idea of not maintaining properly documented sources would terrify me.
As people point out, if you are not careful and execute arbitrary code in the REPL, your source and image can drift out of sync. When I was working on [1], I would go days without relaunching my image, but all the development was done by evaluating code in Emacs buffers and seeing the results right away. Occasionally, things got convoluted enough that I relaunched the process as a sanity check.
For me, the real benefit of iteratively modifying a live image lies in the sense of flow it engenders. I have not felt that sense in languages other than CL. I sometimes explain the feeling by saying than CL is the only language that I don't feel is fighting me.
Demo of kons-9 Common Lisp 3D graphics system [video]
https://medium.com/@kaveh808/6-object-oriented-ice-cream-fla...
Thread starts here:
https://kaveh808.medium.com/from-arcmac-to-the-media-lab-229...
The way I think of it, CL is the rare language that I don't feel is fighting me every step of the way.
The point of production pipelines being bespoke (at least past a certain company size) is a relevant one. The main workhorses of large scale production (Maya, Houdini, Nuke, etc.) are extremely customizable and extensible. Over years (decades in the case of Weta) companies develop highly complex workflows and associated tools based on these applications.
That is why the Unity deal never really made sense to me. The idea that Weta's tools could somehow be packaged up and delivered as essentially shrink-wrapped consumer-level add-ons to Unity was a naive one at best. I'm not entirely surprised to see it fall apart.
I implemented some L-system features in my 3D Common Lisp system: https://github.com/kaveh808/kons-9
Work in progress on an IDE for 3D graphics written in Common Lisp.
Cheesy trailers:
Kind of like that description. I've been doing GL since before it was OpenGL.
In my Common Lisp 3D system [1], I've been happily using very simple immediate mode OpenGL calls, taking advantage of CAD-like features such as drawing wireframes of various thickness over shaded polygons. OpenGL provides specific Z-buffer API calls to facilitate such things.
Is there a simple way of doing such CAD-centric things in Vulkan?
https://www.youtube.com/playlist?list=PLTA6M4yZF0MzsMlNL0N67...
Once you can press a button and get Win/Mac/Linux/Android/iOS/etc versions of your game built, you're in business.
All the higher-level features (3D, ray casting, etc) will be contributed by the community over time.
It lives on a Clozure Common Lisp, though there is no version for Apple M processors. Kind of a shame.
We'll see what comes of it.
Though the software was powerful and made use of the extensibility provided by Lisp, it failed to gain much traction in the industry because the hardware was not suited to 3D graphics. Silicon Graphics (SGI) workstations took that market by the early 90's.