• Daz 3D
  • Shop
  • 3D Software
    • Daz Studio Premier
    • Daz Studio
    • Install Manager
    • Partnerships
    • AI Training data
    • Exporters
    • Daz to Roblox
    • Daz to Maya
    • Daz to Blender
    • Daz to Unreal
    • Daz to Unity
    • Daz to 3ds Max
    • Daz to Cinema 4D
  • 3D Models
    • Genesis 9
    • Genesis 8.1
    • Free 3D Models
  • Community
    • Gallery
    • Forums
    • Blog
    • Press
    • Help
  • Memberships
    • Daz Premier
    • Daz Plus
    • Daz Base
    • Compare
  • Download Studio
ADVANCED SEARCH
  • Menu
  • Daz 3D
ADVANCED SEARCH
Add image
  • Shop
  • 3d Software
    • Daz Studio Premier
    • Daz Studio
    • Install Manager
    • Partnerships
    • AI Training data
    • Exporters
    • Daz to Roblox
    • Daz to Maya
    • Daz to Blender
    • Daz to Unreal
    • Daz to Unity
    • Daz to 3ds Max
    • Daz to Cinema 4D
  • 3D Models
    • Genesis 9
    • Genesis 8.1
    • Free 3D Models
  • Community
    • Our Community
    • Gallery
    • Forums
    • Blog
    • Press
    • Help
  • Memberships
    • Daz Premier
    • Daz Plus
    • Daz Base
    • Compare

Notifications

You currently have no notifications.

Loading...
    • Categories
    • Recent Discussions
Daz 3D Forums > 3rd Party Software > Blender Discussion

OK, Claude Sonnet 3.7 is **CRAZY**

TheMysteryIsThePointTheMysteryIsThePoint Posts: 3,216
March 8 in Blender Discussion

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

  • Richard HaseltineRichard Haseltine Posts: 107,880
    March 8

    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?

  • TheMysteryIsThePointTheMysteryIsThePoint Posts: 3,216
    March 8

    Richard Haseltine said:

    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.

     

  • PadonePadone Posts: 3,995
    March 8

    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.

  • TheMysteryIsThePointTheMysteryIsThePoint Posts: 3,216
    March 9

    Padone said:

    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.

     

  • csaacsaa Posts: 931
    March 15

    Richard Haseltine said:

    hair.data.curves[i].points[j].position

    a good diea? It seems light on error checking.

    Rustaceans would agree! JK only. laugh

  • TheMysteryIsThePointTheMysteryIsThePoint Posts: 3,216
    March 15 edited March 15

    csaa said:

    Richard Haseltine said:

    hair.data.curves[i].points[j].position

    a good diea? It seems light on error checking.

    Rustaceans would agree! JK only. laugh

    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.

     

    Post edited by TheMysteryIsThePoint on March 15
  • TheMysteryIsThePointTheMysteryIsThePoint Posts: 3,216
    April 2

    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 :)

     

Sign In or Register to comment.
Adding to Cart…

Daz 3D is part of Tafi

Connect

DAZ Productions, Inc.
7533 S Center View Ct #4664
West Jordan, UT 84084

HELP

Contact Us

Tutorials

Help Center

Sell Your 3D Content

Affiliate Program

Documentation Center

Open Source

Consent Preferences

JOIN DAZ

Memberships

Blog

About Us

Press

Careers

Bridges

Community

In the Studio

Gallery

Forum

DAZ STORE

Shop

Freebies

Published Artists

Licensing Agreement | Terms of Service | Privacy Policy | EULA

© 2025 Daz Productions Inc. All Rights Reserved.