OK, Claude Sonnet 3.7 is **CRAZY**
TheMysteryIsThePoint
Posts: 3,216
In about 5 minutes, from the initial idea to working code, Claude generated a script to update hair curves vertex positions, a frame_change_post handler to update then during animation, came up with the JSON format to store the animation data for multiple objects over multiple frames, a script to generate some sample JSON data based on the existing hair to test it, and then, get this: wrote a Houdini HDA to export real simulation data in that JSON format for the Blender script to consume.
It initially got the hair vertex API wrong, but once I said "The API looks like this: To Access the jth vertex of the ith curve it is: hair.data.curves[i].points[j].position"
I also had to tell it "It was not necessary to call hair_curves.update(), the function does not even exist, nor does it appear to be necessary to toggle from object mode to edit mode"
But then everything else was perfect. A total of four submissions, from start to finish.
Before, it took me a week and $500 to a Houdini export on Upwork to get this done.

Comments
Is
hair.data.curves[i].points[j].position
a good diea? It seems light on error checking.
Is whatever you were trying to do actually obscure, or is it the sort of thing that already has lots of related/similar samples the AI could have been trained on? What happens if you try something unusual?
You're right to ask about error checking, but I simply clarified how to set a vertex position in general. It took my example, used it in-context, and the script it generated was locked down pretty hard such that it couldn't go out of bounds. It was more careful than I would have been.
There's no addon that works with HairCurves data, as shapekeys for example like there is for object data, the whole reason why I decided to do it myself a year or so ago. I don't know of anyone importing animation data for HairCurves objects and there's no addon for it like there is for object data. So, I think this is unusual enough... I would have found the solution otherwise. Certainly not on the Houdini side.
But in any case, whether or not it is unusual is not the metric I use. My metric is: How long did it take me? How long did it take Claude? It's probably 40 hours versus 5 minutes. I'm done questioning whether this technology is technology; I'm too busy using it to my advantage and being amazed by the newest thing it can do, on a weekly basis.
Your example also clarifies that the operator must be expert on the subject, you actually had to teach the AI where it was wrong and how to fix it. That's not trivial if someone expects the AI to work fine alone.
@Padone
I saw what it was doing wrong, but I probably could have just copied the error message and it would have figured it out itself. It often does, and with a polite apology. That's pretty much the strategy now... just keep cutting and pasting the error messages until it gets it right.
Rustaceans would agree! JK only.
I have zero expertise in it, but I'm quite interested in seeing where Rust goes. I don't expect it to be in Blender any time soon, but some really good engineers where I work seem to really like what they're seeing. I don't have the knee-jerk negative reaction to Rust that some people do. If the Rust compiler catches memory errors better than g++, how could anyone object to that? Provencialism :)
But, again, the assertion that a single line of code can be "light on error checking", or even heavy on error checking, is nonsensical because the error checking is, with any code that would not fail a code review for being too "cute", not on the line itself. But if I can can be shown an example, I will have learned something.
Claude continues to amaze me.
It generated the Blender side of the Strand Based Hair support I'm working on in Sagan. All of it, the GUI and all. Source code is quickly becoming the detailed English language description of what you want. Without me having told it to, it also generated additional buttons to enable/disable auto-updating as the current frame changes, and to update the current frame.
It got it working the first time, but there were a few peculiarities that I had to tell it to fix, but on the third or fourth iteration, it was perfect by my own metric.
I think this is a great example of AI used as a tool to do the part that I had no interest in doing, and would have taken days or weeks to do.
Man, I am never going back :)