Adding to Cart…
Licensing Agreement | Terms of Service | Privacy Policy | EULA
© 2026 Daz Productions Inc. All Rights Reserved.You currently have no notifications.
Licensing Agreement | Terms of Service | Privacy Policy | EULA
© 2026 Daz Productions Inc. All Rights Reserved.
Comments
That sounds great.
That is what Thomas is missing to convert the diffeomorphic hair tools to the new hair system, because it can't be accessed via python, so far. So thank you if you take this, let us know of your progress.
That's exactly what stopped me too. Interestingly, the Python API to modify existing curves and points is there already, just not to create new curves and points. I think I've found the class that creates hair curves and am working on exposing it to the Python API. Blender is interesting. DAZ Studio is hard to develop for because there's no documentation. Blender is hard to develop for because while there is documentation and a strong community, it is very large and complex and still has a lot of C code that feels very old. I'm on it, but it will take a little time.
double post deleted
This all sound amazing. It would really be great to be able to load and transfer Daz content to Blender without touching Daz Studio.
Have to thank all people that help to use Daz content in Blender like Thomas and TheMysteryIsThePoint! Thanks again also to Padone to support with his tips.
Yes, I really can't thank either Thomas or Padone enough... this DAZ/Blender sub-community is really a shining spot in what is otherwise darkness for me.
Blender is pure genius. Before you understand the way the build system automatically generates the Python API for you, it is incredibly frustrating. After you understand, it is pure genius.
So, I think I'm about half done... I've added the API call to add a strand with the requested number of points:
PYTHON INTERACTIVE CONSOLE 3.10.12 (main, Jun 21 2023, 01:30:38) [GCC 11.2.1 20220127 (Red Hat 11.2.1-9)]
Builtin Modules: bpy, bpy.data, bpy.ops, bpy.props, bpy.types, bpy.context, bpy.utils, bgl, gpu, blf, mathutils
Convenience Imports: from mathutils import *; from math import *
Convenience Variables: C = bpy.context, D = bpy.data
>>> curves = D.objects["Curves"]
>>> curves.data.add_curve( 40 )
>>>
and I've found the relevant curve manipulation code in source/blender/blenkernel/intern/curves.cc to do the actual resizing.
Actually getting the code approved and pushed aside, I think I'll have it working soon.
That's wonderful news Donald, thank you for your work and for keeping us up to date with the progress.
Update: I got stuck on how to make a Python API that accepts a two dimensional array, so Hans Goudey put me out of my misery by just doing it himself :) It's already in his personal fork of Blender, if you build Blener from source:
https://projects.blender.org/HooglyBoogly/blender
And the branch name is curves-rna-api
Hans' call is simpler than what I envisioned:
curves.data.add_curves( [ 42, 30, 49 ] )
This call will add 3 curves to the hair curves object, with 42, 30, and 49 points respectively. He correctly reasoned that the call doesn't have to arrange any points because the API to do that part already exists. The added curves have all of their points at (0,0,0) and these points can then be manipulated with the existing Python API. I'm currently re-writing my hair exporter so I have called the new API and it seems to work, but I haven't actually manipulated any of the new points.
I don't know what the timeframe is for this to make it into the main tree and a release.
Thank you Donald for the news, it's good to hear that the task is proceeding fine. There's no rush so I guess we'll wait for the official version to come out.
p.s. I'm not sure it's a good idea to place all the points at zero. I mean the curve has to be interpolated some way and placing all to zero sounds like bad. May be a bunch of lines from zero to infinity and beyond is better LOL. But of course I trust Hans already considered this so I'm probably worrying for nothing.
Hans was a real bro and merged the code into main on the September 23rd, which beat the Bcon3 deadline of the 27th, so it should be in Blender 4.0 which drops on November 7th.
I've already used it extensively and it works perfectly. Hans, and Dalai (who put me into contact with Hans) are both champs.
Open Source For The Win.
Thank you for the news, just tried and seems to work, though I fear 4.0 will be a mess to work with due to the many api changes. Reported to Thomas.
https://bitbucket.org/Diffeomorphic/import_daz/issues/1764/
Oh my, 6 more days to wait :D
I definitely agree. We really need some tutorials for the changed interface and features of Blender 4.0. Nevertheless, these are fantastic news and I'm looking forward to use it. A big thanks for your efforts!
Given that this is maybe not coming out, what do we consider to be the best workflow for animating Daz Figures in Blender with the idea of sending animation back to Daz Studio to collect HD JCMs (which i personally believe are necessary, although others may disagree!).
@lilweep
Sorry for the lack of updates. Because of the day job, I just haven't had much time to work on it.
Where it stands:
The standalone program that one runs instead of DAZ studio works:
Loads .duf scenes.
Has functionality to gather the used assets into a single directory or zip file, and can also load these. It also renames files to be case-sensitive filesystem friendly. Dramatically speeds up load times because it only loads what is actually used, not your whole catalog. There's a small bug sometimes, but there's also a workaround.
Export character to Blender via USDA and merges the rigs. There are 2 bugs left, having to do with wearables, but if you don't need them to clean up and perfect the animation, they won't matter.
Sending back to DAZ is a work in progress. A small script in Blender sends the entire animation for all figures back to Hitvhens, which caches them. Then later, when Blender detects that the frame number has changed, it commands hitches to update the frame by applying all the rotations for the new frame. Blender then asks for all the updated geometry, and updates its proxies (objects with no armature that correspond to the objects imported from Hitchens) that are then rendered. I tested it and it works, even with simulations and such, and I didn't have to write a geometry node, thank god. What doesn't work perfectly yet are the twist bones, and they work differently between Genesis generations. I've worked out the math, but I didn't even bother any more asking DAZ how it works, and that is the greatest hold up.
There's also other miscellaneous stuff in there like exporting strand based hair, diffeo DBZ files, and pushing blender created morphs back to Hitchens (for something so simple, Morph Loader Pro really makes it complicated).
So, it's coming, I just can't say when it'll be ready for the public, and it seems like it's going to work well.
Great news. I would love to see a program that converts Daz characters to native Blender characters with rigs and JMCs. I understand that some things will be complex, like HD morphs and other dependencies like MCMs. For textures, I like to use the basic Daz textures and adjust and enhance them for Cycles. Unfortunately such a program will never exist, but everything that comes near to it is highly welcome.
So far, I stick to Diffeomorphic, which has a huge number of features. Sagan and Hitchens may be very interesting as well.
Thanks to all for their great work. Wish I had more time besides my day job.
Hitchens would be good because you can animate in Blender then bring back to Daz to get theHD morphs or whatever else you need from daz. Then can export as alembic if you need to render elsewhere.
I still stand in awe of the amazing things that Thomas has accomplished with Diffeo. I immediately took a different approach: Don't even try to reverse engineer anything, especially without help from DAZ. Life is too short for that :) Instead, I've learned how to run DS standalone and slap a GUI specific to our needs on top of it so I don't have to worry about HD this, JCMs that...
And since it generally takes longer to render a frame than it does for DS to advance by a frame and apply all the modifiers, transferring the scene from DS to Blender is effectively instantaneous.
And I'm with you; I just wish I had more time... this kind of programming is immensely enjoyable.
Exactly! And I don't have to figure any of that out, with no help from DAZ. I've never actually used Blender's Alembic nor USD export, but I think the best strategy is usually to get out of DS as quickly as possible to avail oneself of other tools that are available.
Note that the initial USD export is just so that you have a rigged character to animate. Hitchens gets the vertex exact geometry from DS for the next frame of an animation while it is rendering the previous via a custom wire protocol, so no more Alembic or even USD after the initial export. It's automatic. You can also ask Hitchens to update the current frame you are on in Blender with HD and JCMs for your reference while animating finer interactions. DS and Blender can be on the same computer or different ones.
Yo TheMysteryIsThePoint,
as a singer/guitarist... i gotta say that song in your forum sig kicks friggin butt! (hey Dartanbeck, go check it out - you'll be way-impressed!)
Lyrics and production both, it cracks me up and inspires me to go play some more, and/or figure out how to make any one of the zillion AI tools let me tell my stories with that kind of substance. Bravo! (I'd be curious about the back story/mechanisms employed - it's truly an impressive and fun piece!)
i am not worthy, sir! (bowing like the boyz on 'Waynes World')
cheers, and mo mo more!
--ms
PS - and congrats on your Hitchens breakthrough - much as I'm loving lurking in the nearby animation/ai forum topic (Dart/Wsterdan/and crew), I'm also still digging the hands-on part of it all and excited to run your new masterpiece through some paces (no pressure!).
Hi @mindsong
I picked up the guitar when I first heard George Lynch play In My Dreams. I put it back down when I heard Yngwie Makmsteen play Far Beyonf the Sun. Or was it I am a Viking? When I heard Tony MacAlpine play Hundreds od Thousands, I realized that I had never played at all. Who knows... I got to the realization that even though I was developing some actual virtuosity and could burn up E Harmonic Minor or A Phrygian scales, I didn't inherit the true musician's gene that my father and sister were blessed with. But since you're a player, you'd probably enjoy messing around with Suno because you already know the language to tell it. It understands. And certain things hit too close to home, so I asked Claude if it actually read the DAZ forums and it said that it had. So there ya go :) Hit me up through email if you create anything with it, and let me know what elese you've been up to.
And even after the stupidest bug that confounded me for so long was resolved, I'm already beating my head up against the next undocumented thing having to do with scaled armatures. I know that the DAZ devs are not dummies and there's most certainly a good reason for why they've done what they've done, but sometimes it is really hard to figure out what is going on inside the opaque box that is DAZ Studio, with zero help from anyone that knows, and actual negative help from people that don't.
When you waste time wondering how a 3 x 3 matrix can encode translations until you tralize that the thing unfortunately named "DzMatrix3" is not a 3 x 3 matrix but a 4 x 3, it takes longer than it should. And there's something going on with scaled armatures I don't quite have my brain around. And I also discovered that if you set positions and rotations with setLocalPos() or setLocalRot() it can corrupt the scene and the GUI, so you have to use node->get...Control() and set the value there. It would have been really nice if there had been a one line comment saying "Yes, we know this is a public class method and it looks so sexy and simple and seems like it will do exactly what you want... DO NOT CALL IT!!!" That's what you sign up for when you try to make a plugin. OK, rant over :)
But I am pretty excited to be so close to the end... I don't scale any armature bones, so it's already working for my own purposes. It works like a charm with move.ai's high quality data.
I've got lots of 'songs-to-write' ideas and motifs jotted down, so maybe a Suno or Udio session (or 20) will at least get me going on them. Not enough hours in a minute!
And, of course, I hope that someday a few of my 3D animation visions fill some of the imagery that such good music regularly conjours. In that regard, @Dartanbeck is my main long-time hero and inspiration, along with @wolf359 and @WendyLuvzCats for their out-of-the-box mindsets and explorations. All good stuff.
I so look forward to mutzing with your Hitchens tool(s), and maybe getting a few animated shorts from my mind to MP4! You'll certainly get links to my progress! With Hitchens in mind, I'm still architecting a standalone Blender/DS console in the far recesses of my noggin. It's all soo cool, but keeping up with it all is kind of crazy - but I don't dare complain about that being a problem. "Blessed I am", as Yoda might have said.
One foot in front of the other...
Keep it up, Sir! and thanks - as ever.
--ms
(edited - minimized off-topic banter...)