HNHacker News
TopNewBestAskShowJobs

kaveh808

665 karma · joined April 11, 2022

• degree in mathematics from MIT • wrote the animation software used in “Jurassic Park." • led software R&D on “Final Fantasy: The Spirits Within” • senior software developer on “The Hobbit” films

Current project: kons-9 Common Lisp 3D system https://github.com/kaveh808/kons-9

submissionscomments
kaveh808··on Unity Weta Tools
I worked at Weta prior to the Unity acquisition.

It will be a tremendous technical feat if they have managed to bring the deep functionality of what were Weta's internal tools to a more general audience of artists. The key difference will be that these artists won't have direct access to the developers who wrote the tools, as the Weta artists did.

Packaging powerful graphics tools within an artist-friendly interface and workflow is challenging.

kaveh808··on Cloth Simulation
Thanks. I wrote the hair generation software. It was a Maya plugin. For a very early (beta) version of Maya initially in 1997.
kaveh808··on Cloth Simulation
I did early work in mass-spring dynamics while at MIT (1985). My system was developed on a Symbolics Lisp Machine:

https://medium.com/@kaveh808/7-how-to-make-3d-jello-69350751...

I did simple fabric simulations, as well as 3d soft object dynamics.

Followup work in the early 90's on SGI workstations:

https://medium.com/@kaveh808/24-rubbery-cloth-and-numerical-...

All of this cloth and hair development culminated during my tenure as R&D lead on the feature film "Final Fantasy: The Spirits Within". The commercial Syflex system was an offshoot of that development.

kaveh808··on Common Lisp: The Good, the Bad, the Ugly, the Legacy, the Ambivalent
Common Lisp is a curious creature. Ancient in some ways, prescient in others.

It is not perfect by any means, and politics did play a large part in the 10-year ANSI standardization process.

At the end of the day, for me, what makes it my favorite language is the principle that the language should provide the maximum possible power to the programmer, boosting productivity of (most evidently) the individual developer.

It has served me well in my 3D graphics project [0], which is different enough from what is out there that it does feel like a worthwhile endeavor.

[0] https://github.com/kaveh808/kons-9

kaveh808··on Pixar, Adobe, Apple, Autodesk, and Nvidia form alliance for OpenUSD
USD is very complex, mainly because it includes an interchange format as well as workflow features. I wonder if it would make sense to split the standard into layers to expand the target audience beyond the major production houses.

Or maybe glTF and other interchange formats already satisfy that need.

kaveh808··on It's 2023, so of course I'm learning Common Lisp
If that was intended for me, I rarely watch my own videos. Only when I want to check on something. Don't like the sound of my voice. :)
kaveh808··on It's 2023, so of course I'm learning Common Lisp
My Youtube channel: https://www.youtube.com/channel/UCHNK9EcrAwP7djlwQN4C_tg
kaveh808··on It's 2023, so of course I'm learning Common Lisp
If you're into 3D graphics, this could be a fun Common Lisp codebase to look at. I have tried to keep it simple and comprehensible.

https://github.com/kaveh808/kons-9

kaveh808··on Pikchr: A PIC-like markup language for diagrams in technical documentation
And fourth from last is preantepenultimate.
kaveh808··on Symbolics CGI production notes: How Stanley and Stella came together (1988)
Whitney/Demos was the Lisp-based 3D production company that never was.

After their company Digital Productions (based around the Cray) failed, John Whitney Jr and Gary Demos started a new venture formed around the Connection Machine as the compute hardware and Symbolics workstations as the front end. The Connection Machine software was written in Star Lisp.

Unfortunately this short was all they produced before their funding fell through and the company closed down.

kaveh808··on Blender 3.6 LTS Released
Are there any plans for a C/C++ API for Blender?
kaveh808··on What are the enduring innovations of Lisp? (2022)
What is the field of your software product?
kaveh808··on Symbolics Lisp Machines Graphics Demo (1990) [video]
This thread brought back memories of what could have been a game-changer for Lisp in graphics: Whitney/Demos Productions.

This was a company set up by the founders of Digital Productions of "The Last Starfighter" and Cray XMP fame. Their system was based around a Connection Machine and Symbolics workstations, with development to be done in Lisp.

Unfortunately, they folded almost before they started, due to their funding falling through.

One can only imagine how that might have changed the 3D production landscape.

kaveh808··on Symbolics Lisp Machines Graphics Demo (1990) [video]
I began my 3D graphics development on a Symbolics workstation at the MIT Media Lab in the mid-80's. This was before the S-Graphics suite was released. [0]

The outstanding feature of the S-Graphics suite was the polygonal modeler which used a winged-edge structure that was far ahead of its time. It survives conceptually in the Wings3D system, which is a quite faithful copy of that modeler.

And of course you got the extensibility that came with the graphics system being built on Lisp.

But Symbolics was never, as far as I saw, a serious or popular contender in 3D production. Not only was the system expensive, but the hardware could not keep up with SGI's graphics abilities. Furthermore, the mass of CG developers at the time came from a C/Unix background, and rendering especially was so speed critical that C (and Fortran) resulted in faster systems.

Almost 40 years later, I have returned to the idea of developing a 3D system in Common Lisp [1]. We shall see where it leads.

[0] https://medium.com/@kaveh808/late-night-lisp-machine-hacking...

[1] https://github.com/kaveh808/kons-9

kaveh808··on Ask HN: I am overflowing with ideas but never finish anything
I think this is a common trait of creative people. After all, we want to create new things, not necessarily shepherd products through often-tiresome paths to completion or marketability.

Some random thoughts:

I watched a documentary about the production of the new Mustang at GM. The head of the project said something like "Once the initial excitement and enthusiasm are over, it's 95% bad news."

Something I have been occasionally thinking of doing is making a list of all my abandoned projects. Sort of a litany of my failures. A reverse-CV of sorts.

In my latest project (a 3D Common Lisp system), I made two decisions which have so far kept me involved. (1) I am not aiming at developing a commercial system. This means I can ignore necessary-but-tedious development a commercial system would require. (2) Since the system is a sandbox for me to explore my ideas, I can work on whatever interests me most at any given moment. This keeps me motivated, though to be honest I still go through slow periods. I have written some blog posts about this: https://kaveh808.medium.com/

It does help to be clear about why you are doing what you are doing. Whether it is intended to make money, solve people's problems, is just a hobby akin to picking up painting.

Overthinking leads to paralysis. Take it one step at a time and try as much as possible to concentrate on what motivates you, rather than imagining and enumerating all potential pitfalls.

I'll leave you with a quote by Ray Bradbury: "You've got to jump off cliffs all the time and build your wings on the way down."

kaveh808··on Ask HN: Resources for older developers?
https://discord.gg/evhUwmYd
kaveh808··on Ask HN: Resources for older developers?
https://discord.gg/evhUwmYd
kaveh808··on Ask HN: Resources for older developers?
Older developer here (I started my career by writing 3D graphics software in the mid-80's).

I recently spent a number of years in semi-retirement, concentrating on my photography [0] and filmmaking [1] and thinking I was done with (and too old for) software development.

Professional software development had lost its lure for me as the CG and VFX industry had grown into a massive factory-like industry. Though I had worked on some satisfying projects -- writing the animation code used in "Jurassic Park", leading the R&D team for "Final Fantasy: The Spirits Within", working on "The Hobbit" movies -- I had lost the desire to write software.

Then about a year ago a friend asked me to teach him some Common Lisp online. So I wrote some tutorials and as we did our sessions [2] I got increasingly enthusiastic about developing for fun, especially if I could use the tool of my choice (Common Lisp) for the domain of my choice (computer graphics). So I started a new 3D graphics project and made it open source [3]. Even started a blog about the journey [4].

Although I don't consider myself to be up on the latest buzzwords and web architectures and the only scrum I'm familiar with is from my rugby-playing days, I have found -- rediscovered -- the pleasure of designing and implementing software. Surprisingly (to me at least), I don't feel over the hill. Yes, I probably can't do the marathon programming sessions I used to do, and all-nighters are a thing of the past, but I don't find my mind being any less sharp than it used to be.

[0] https://www.kardanphotography.com

[1] https://vimeo.com/kavehkardan

[2] https://www.youtube.com/playlist?list=PLTA6M4yZF0MzsMlNL0N67...

[3] https://github.com/kaveh808/kons-9

[4] https://medium.com/@kaveh808/once-more-into-the-breach-a-new...

kaveh808··on Why Lisp?
A design decision which needs to be made is at what level of abstraction should the data be "fixed", i.e. not to be manipulated with the full power of CL. This is often a flexibility vs. efficiency tradeoff.

In my 3D CL system [0], I have so far kept all geometric data as naive CLOS classes as the intent of the system is to provide a sandbox for experimentation. I have thought of, perhaps one day, representing the geometry as a foreign library for efficient passing to the GPU.

[0] https://github.com/kaveh808/kons-9

kaveh808··on Paradigms of A.I. Programming: Case Studies in Common Lisp (1991)
Not a book, but tutorial videos showing CL in use using 2D OpenGL graphics:

https://www.youtube.com/playlist?list=PLTA6M4yZF0MzsMlNL0N67...

kaveh808··on Ask HN: What Are You Working On? (May 2023)
Working away on kons-9, my 3D Common Lisp system.

https://github.com/kaveh808/kons-9

kaveh808··on Alien Artefacts
“Programs must be written for people to read, and only incidentally for machines to execute.” -- Hal Abelson
kaveh808··on 916 Days of Emacs
A few random Emacs thoughts...

One really nice feature of MacOS text widgets is the inclusion of basic Emacs key bindings such as C-k, C-d, C-a, etc. Brought forward from the Next days.

I used Zmacs on Lisp Machines back at MIT in the early 80's. A couple of my favorite Emacs-related acronyms are the editor EINE (Eine Is Not Emacs) and its successor ZWEI (Zwei Was EINE Initially).

I remember at one point in the late 80's using Emacs in the shell on SGI Irix workstations. No mouse support at that time for it.

Today I still use Emacs/Slime for my Common Lisp 3D graphics hacking.

kaveh808··on Epic’s new motion-capture animation tech
Photorealism in CG is a milestone which is there, and can be strived for. It may be a necessary step to get through before interest in more interpretive styles truly takes off.

Analogous to how modern art in painting didn't really take off until photography had made photorealism attainable and no longer interesting for painters.

kaveh808··on Ask HN: What projects did you build to get better as a programmer?
My journey as a software developer began in the 80's at MIT by writing 3D graphics code on a Symbolics Lisp Machine. Some fond memories:

https://kaveh808.medium.com/late-night-lisp-machine-hacking-...

One big difference between then and now was that back then you wrote mainly from scratch and were in charge of most parts of your software, whereas today it is mainly about gluing various toolkits and frameworks together.

kaveh808··on Jim Blinn and Ed Catmull – graphics class at Berkeley (1981)
My journey in CG began in the 80's at MIT on a Symbolics Lisp Machine. Some fond memories I've recorded here:

https://medium.com/@kaveh808/from-arcmac-to-the-media-lab-22...

kaveh808··on Carp lang: statically typed Lisp, no GC
Level of detail.
kaveh808··on Ask HN: What's your unpopular tech, programming opinion
Compare the 10-year effort for the ANSI standardization of Common Lisp with the two-week, ill-considered marketing-directed creation of JavaScript, now one of the world's most popular languages, and the resultant decades of technical debt.
kaveh808··on Erlang's not about lightweight processes and message passing
I have a cunning plan to become independently wealthy. Should come to fruition real soon now. :)

Perhaps an IDE for LFE would be a place to start? Does such a thing exist?

kaveh808··on Ask HN: What's your unpopular tech, programming opinion
We hit a local maximum in language design with Common Lisp in the 80's. I mean putting in the hard work to make a language be as powerful as you can imagine.

Today the market moves too fast, priorities have changed, and there seems to less of a willingness to "do the right thing".

← PreviousPage 2 of 6Next →