Free form deformation balloon
-
This project is on hold while I work on SketchyPhysics. I got it to the point that the deformation works. But it needs a UI where you can move the control points.
If anyone wants to take it on they can have the code lock stock and barrel. If not I'll try to get back to it by the end of the year.
Chris
-
YES, I would pay!
One concern is the skewing handles and the relationship to SU axis.
-
@unknownuser said:
I would definitely pay for this if the functions would be the same as on that page you referenced. I have always wanted to skew objects with the Scale tool but couldn't.
yeah I added that to the SU7 wish list.
-
I did some more work on this a month or so ago. Unfortunately the approach I took was really really slow. Minutes to process a model with a few thousand verts. I need to go back and try to optimize it at some point.
Chris
-
I worked on it a bit tonight and got the speed up to the point it might be useable. Here is an example using a model I use as a test case.
It still needs a lot of work. Starting with the UI.
-
Hi Chris!!!
Great Script!!! I wonder what happens in very simple models like a cube... Subdivides the faces? or not working in this cases?
Daniel S
PS. I attach a image.. the result of moving three control points on a cube will give a result like this?
-
@daniel s said:
Hi Chris!!!
Great Script!!! I wonder what happens in very simple models like a cube... Subdivides the faces? or not working in this cases?
Daniel S
PS. I attach a image.. the result of moving three control points on a cube will give a result like this?It doesn't subdivide faces. That would be even slower.
The more faces you have the better the results.
-
It seems that at least you triangulate the faces, from what I could judge with the deer's kees (and the few faces that were not triangular in the original model).
This is a great tool, and judging from the video, the performance are more than "better"! (compared for instance to a simple shear of the model, that would take 40 seconds with a Ruby script). I imagine that you use a compiled version in C++).
I would encourage you to continue on this path, really!
If you need some help for the GUI, just post a description of what you need and I am sure we would find a way to contribute. -
@unknownuser said:
It seems that at least you triangulate the faces, from what I could judge with the deer's kees (and the few faces that were not triangular in the original model).
This is a great tool, and judging from the video, the performance are more than "better"! (compared for instance to a simple shear of the model, that would take 40 seconds with a Ruby script). I imagine that you use a compiled version in C++).
I would encourage you to continue on this path, really!
If you need some help for the GUI, just post a description of what you need and I am sure we would find a way to contribute.I don't triangulate but I do explode curves. That is probably what you are seeing..
The animated gif is about 2x playback so its a bit slower than it appears. But it is all written in ruby. I expect it would be a bit faster if I moved some of the calculations to C++. But I think the bottle neck is the moving of each vertex.
I might take you up on the gui help.
Chris
-
Hi Chris, as always, very impressive.
A few questions:
Are the deformations restricted to just the SU default axis?
If the group/component is rotated manually before being deformed, what determines the deformation "planes"?
Is there an ability to deform relative to a specified point, (ie., center, opposite handle, or inference point). Is there concentric deformation relative to a specific point?
Regards, John
-
@jclements said:
Hi Chris, as always, very impressive.
A few questions:
Are the deformations restricted to just the SU default axis?
If the group/component is rotated manually before being deformed, what determines the deformation "planes"?
Is there an ability to deform relative to a specified point, (ie., center, opposite handle, or inference point). Is there concentric deformation relative to a specific point?
Regards, John
Sorry for the delay responding. Missed this post.
When I initialize the Free Form Deformation (FFD). I create a 2x2 or 3x3 array of construction points that span the bounding box of the group. For 2x2 its one construction point at each corner. 3x3 has one at each corner and each midpoint.
Then I calculate a weight for each vertex in the group based on the distance to the construction point.
The user can then move the construction points any way they like. Singularly, in groups, scaled, rotated whatever.
Once you are done moving the points you select update and the script will move each vertex in the mesh based on the pre-calculated vertex weights.
Does that answer your questions?
Chris
Here is an example with more control point manipulations.
-
It looks great. Is it possible to have lines connecting the dots? That would in my opinion make it easier to see the deformation and which points are moved where.
I think it could be hard to see sometimes otherwise.Would it be possible also to see the deformation in wireframe like in the new sear transformation script?
-
@pixero said:
It looks great. Is it possible to have lines connecting the dots? That would in my opinion make it easier to see the deformation and which points are moved where.
I think it could be hard to see sometimes otherwise.Would it be possible also to see the deformation in wireframe like in the new sear transformation script?
I have a version that shows the lines, but in practice the lines get in the way when you are trying to move the control points. I think it could be done right by writing a custom tool. But that is a bit more than I can take on just now.
Generating a wireframe would probably be too slow, but I will check it out.
Chris
-
Thanks, Chris. It looks like a practical interface/approach.
If only ONE point were selected, then is the "stretch" done relative to the opposite point on the same plane or relative to the center of the 9-point plane?
-
...
Looking great already !This plugin, together with a (yet to be developed) 'subdivision tool', takes SU one step closer to the ability to model organics.
Might I add a feature to the wishlist for that plugin? : a 'soft selection' tool additional to the selection of control points.
Great work.
-
This is really great... will be following this development closely. The only bummer is that you cant 'watch' the deformation live, nor can you apparently inference the deformation to other objects in the scene. This is the major power, IMHO, of the current Scale Tool... that you can 'squish' the object down or up to align with adjacent model geometry. For instance scale-align the width of a wall to an adjacent object... but still it's very powerful and just plain fun.
-
@kwistenbiebel said:
a (yet to be developed) 'subdivision tool'
It's in the works
http://www.sketchucation.com/forums/scf/viewtopic.php?f=57&t=5687
-
Whaat,
He he
I actually wrote that some minutes before I discovered that thread....
This is a major leap for sketchup to me.
Knowing your amazing coding skills, the subdivision tool will be great I am sure...
Advertisement