HN user

kaveh808

662 karma

• 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

Posts37
Comments166
View on HN
www.youtube.com 1y ago

Demo of kons-9 Common Lisp 3D graphics system [video]

kaveh808
10pts1
www.youtube.com 2y ago

Trailer for recent kons-9 Common Lisp 3D graphics features [video]

kaveh808
3pts1
www.youtube.com 2y ago

Show HN: Common Lisp tutorials with OpenGL graphics

kaveh808
7pts0
old.reddit.com 3y ago

Unproduced “Final Fantasy: The Spirits Within” Screenplay

kaveh808
2pts0
old.reddit.com 3y ago

ITA Software and Common Lisp

kaveh808
8pts0
news.ycombinator.com 3y ago

Applications for open source Common Lisp 3D system?

kaveh808
2pts0
news.ycombinator.com 3y ago

Ask HN: Simple 3D animation file format?

kaveh808
2pts1
news.ycombinator.com 3y ago

Ask HN: Big tech company worthy of admiration?

kaveh808
3pts1
news.ycombinator.com 3y ago

Ask HN: Who is using Common Lisp in an educational/university setting?

kaveh808
3pts1
www.youtube.com 3y ago

New 3D Lisp system trailer

kaveh808
5pts2
www.youtube.com 3y ago

Cheesy trailer for Common Lisp 3D system

kaveh808
3pts0
old.reddit.com 3y ago

Teaser trailer for kons-9 Common Lisp 3D system

kaveh808
3pts1
github.com 3y ago

Kons-9 3D Common Lisp system – web-like structures using mass-spring model

kaveh808
2pts2
old.reddit.com 3y ago

Common Lisp language extensions wish list?

kaveh808
1pts0
github.com 3y ago

Kons-9 update – 3D Common Lisp system on macOS and Linux

kaveh808
5pts3
kaveh808.medium.com 3y ago

World Building and Alternate Reality Common Lisp

kaveh808
64pts7
www.youtube.com 3y ago

Common Lisp OpenGL programming tutorial #12 – Animation and Hierarchies

kaveh808
2pts0
news.ycombinator.com 3y ago

Ask HN: What are some interesting examples of visual programming?

kaveh808
3pts5
www.youtube.com 3y ago

Common Lisp OpenGL programming tutorial #11 – Animation

kaveh808
2pts0
www.youtube.com 3y ago

Common Lisp OpenGL programming tutorial #10 – Renderers Part 2

kaveh808
2pts1
old.reddit.com 3y ago

New open source project: Common Lisp 3D graphics system

kaveh808
188pts80
news.ycombinator.com 3y ago

New open source Common Lisp 3D graphics project – call for participation

kaveh808
4pts5
www.youtube.com 3y ago

Common Lisp OpenGL programming tutorial #8 – Colors and Groups

kaveh808
3pts0
www.youtube.com 3y ago

Common Lisp OpenGL programming tutorial #7 – Colors

kaveh808
5pts0
www.youtube.com 3y ago

Common Lisp OpenGL programming tutorial #6 – Hierarchies

kaveh808
3pts0
www.youtube.com 3y ago

Common Lisp programming tutorial #5 by Kaveh808

kaveh808
1pts0
www.youtube.com 4y ago

Kaveh's Common Lisp Lesson 04

kaveh808
3pts1
www.youtube.com 4y ago

Common Lisp OpenGL tutorial #3

kaveh808
2pts0
www.youtube.com 4y ago

Common Lisp Tutorial #2

kaveh808
2pts0
www.youtube.com 4y ago

Video: Kaveh's Common Lisp Lesson 01

kaveh808
1pts1

I hope for the sake of my former colleagues at Weta that those transferred to Unity can simply be transferred back to Weta.

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.

Is there any movement towards a C/C++ API in Blender 4.0? I feel extensibility may be where it lags behind Maya and Houdini.

"Vulkan represents a low-level way of talking to the GPU more or less on the GPU's terms. As opposed to OpenGL which is a way of talking to the GPU on boomer CAD programmers' terms."

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?

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

The killer feature of whatever game engine replaces Unity in developers' hearts and minds is going to be the platform delivery aspect.

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.

Profound Beliefs 3 years ago

I developed my first 3D graphics system on a Symbolics back in the mid-80's, before Symbolics released their S-Geometry package.

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.

"He can see far; further than in fact his strength allows him to travel. He conceives of brilliant ambitious projects requiring great resources, and he embarks on them only to run out of steam. It's not that he's lazy; its just that his resources are insufficient."

This speaks to me. As I get older, I am tempted to start curating a list of my "failed" (or abandoned) projects.

I have been fortunate enough to launch an open-source 3D graphics Lisp project late in life which has managed to keep my interest. Early on, I made a number of conscious decisions about how I would view this project and avoid some mistakes of my past.

- No comparing to existing 3D packages. It's evident that I can't compete with commercial packages with decades of programmer effort.

- No hunting for a "better" language (though this hasn't really been a problem). A goal of the project is to develop a system where I can bring the power of Common Lisp to bear on 3D graphics. In some ways this is a throwback of work I did developing 3D graphics on Symbolics Lisp Machines back at the MIT Media Lab [0]. Returning to my youth?

- Keep it simple. Or, does it need to be more complicated? Understandable code is a benefit, as is code you can (mostly) keep in your head. Avoid excessively clever code, which I have been guilty of in the past (macros, anyone?). Also (more controversially) avoid dependencies where possible; keep it in house.

- Build a community. Having others involved is the best way I have found for not running out of steam. My other projects have invariably been solo efforts. Now I am interested in creating something which will outlast me. Hence the decision to put the project on Github [1].

- This "thing" has value in and of itself, and doesn't need to be "better" than what is out there. By virtue of being different enough, it is a worthwhile project to bring into existence. The world probably doesn't need another browser-based JavaScript package.

- Keep the momentum going by working on whatever interests me at the time. Avoiding tedious development and yak shaving keeps me from losing motivation. I do realize the article touches on this as a weakness of the Lisp developer mindset, and I admit to not being motivated to build an industrial-strength system. E.g. my half-baked GUI built on top of raw OpenGL.

- Finally (have to stop sometime), don't overthink things. Enjoy the journey. I am enjoying enhancing the system while not fretting over who will use it or for what purpose. The journey is the destination.

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

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

I work in a slightly different way by always saving my code in emacs and loading it fresh each session (though I have gone a couple of weeks with a live image/session on my laptop). I am fortunate that my 3D system [0] compiles and loads in a few seconds.

I also use the REPL for quick tests, and evaluate new code by writing it in emacs and compiling it one function at a time (C-c C-c).

Finally, I keep files of tutorial/demo/test cases which work a bit like a notebook, allowing me to quickly verify that existing 3D scenes still work.

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

Unity Weta Tools 3 years ago

I see this as a long-term approach which will improve over time. Mocap can play a part, as can AI -- though I'm no expert in it, it's hard to argue with the results produced by tools such as Midjourney -- and other techniques.

The key point is tackling the animation "problem" from a new vantage point, as opposed to having an interface based on numerical interpolation as the final solution.

Unity Weta Tools 3 years ago

The idea would be to cherry pick simpler cases, such as crowds and "background" actors. Hero shots and closeups would evolve over time as the techniques improved.

One advantage of authoring cinematics as opposed to games is the lack of a requirement for real-time interaction. The cinematic sequence can take a few seconds and analyze/plan accordingly.

Unity Weta Tools 3 years ago

We have moved the artists up in part from animation to puppeteering (mocap). The next step is to move up to directing.

Allow the artist to interact with scene objects/characters as a director would. This requires what I used to refer to as "intelligent objects" back in the 80's. You would give directions and the object would figure out what it needed to do and how it would move.

So there would be a higher level of conversation with the 3D entities than "Set rotation keyframe."

Unity Weta Tools 3 years ago

I think there is an opportunity to rethink a system for computer animation. Existing DCC packages are stuck in the late-80's mindset of animation consisting of interpolated values between keyframes. I wrote two such systems in that timeframe: Neo-Visuals and Softimage.

As far as I've seen, neither Unity nor Unreal have moved in this direction. Their "sequencer" solutions are IMHO unwieldy kludges that don't take advantage of new higher levels of abstraction for producing computer animation.

Unity Weta Tools 3 years ago

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.

Cloth Simulation 3 years ago

Thanks. I wrote the hair generation software. It was a Maya plugin. For a very early (beta) version of Maya initially in 1997.