nortikin / sverchok

Sverchok
http://nortikin.github.io/sverchok/
GNU General Public License v3.0
2.24k stars 233 forks source link

Kinematics demos #234

Closed zeffii closed 10 years ago

zeffii commented 10 years ago

image pontiac https://www.dropbox.com/s/fafb7l9hopx2cit/kinematics_001.blend

nortikin commented 10 years ago

that what you made right hand should be in form of panel in 3d toolshelf in left side. for all layouts. imagin just.

nortikin commented 10 years ago
zeffii commented 10 years ago

yeah, pitty proper node grouping is not implemented for pynodes, I know lukastoenne has it on his mind. I'm no animator but now I can build the robot arm : )

nortikin commented 10 years ago

https://drive.google.com/file/d/0B6KMvjWAjGiyWXZyZW9nWmM5UW8/edit?usp=sharing my proposal

nortikin commented 10 years ago

kinematics_002 blend

zeffii commented 10 years ago

very cool approach @nortikin , seems good structure. This is probably a 15 line python node_script

nortikin commented 10 years ago

https://drive.google.com/file/d/0B6KMvjWAjGiyZl8xTHVjVG9XVUk/edit?usp=sharing spider based on layout

zeffii commented 10 years ago

this is very slow on my slow machine :) I have power-saving (laptop) on as standard to keep an eye on how efficient my code is - Wondering why this was so expensive? -- should work on processing heatmap for the nodeview..

nortikin commented 10 years ago

will see. i have desktop 2 cores Core2Duo 6420

nortikin commented 10 years ago
Updated  Float.005 in:0.0003
Updated  Float.004 in:0.0003
Updated  function in:0.0013
Updated  Float.006 in:0.0003
Updated  function.001 in:0.0011
Updated  Float.007 in:0.0002
Updated  function.002 in:0.0009
Updated  Float.010 in:0.0002
Updated  Formula2.006 in:0.0021
Updated  Formula2.007 in:0.0017
Updated  Float.009 in:0.0002
Updated  Formula2.004 in:0.0016
Updated  Formula2.005 in:0.0022
Updated  Float.008 in:0.0002
Updated  Formula2.002 in:0.0017
Updated  Formula2.003 in:0.0016
Updated  Float.011 in:0.0002
Updated  Formula2.001 in:0.0016
Updated  Float Series.002 in:0.0004
Updated  Float Series.001 in:0.0004
Updated  Vectors in.005 in:0.0004
Updated  Float Series in:0.0004
Updated  Formula2.008 in:0.0012
Updated  Vectors in.006 in:0.0012
Updated  Matrix in in:0.0014
Updated  Vectors in.003 in:0.0009
Updated  Vectors in.002 in:0.0009
Updated  Formula2 in:0.0019
Updated  Vectors in.001 in:0.0009
Updated  Vectors in in:0.0004
Updated  Vector Math in:0.0009
Updated  Vector Math.001 in:0.0009
Updated  Vector Math.002 in:0.0009
Updated  Vectors in.004 in:0.0009
Updated  Vector Math.003 in:0.0009
Updated  UV Connect in:0.0023
Updated  Apply matrix for vectors in:0.0009
Updated  Vectors out in:0.0007
Updated  function.003 in:0.0005
Updated  Vectors in.007 in:0.0012
Updated  Vector Interpolation in:0.0029
Updated  Vector Interpolation.001 in:0.0026
Updated  UV Connect.001 in:0.0017
Updated  Sphere in:0.0008
Updated  Adaptive Edges in:0.0362
Updated  Viewer Draw in:0.0199
Updated  Line.001 in:0.0004
Updated  Vectors out.002 in:0.0006
Updated  function.004 in:0.0005
Updated  Vectors in.009 in:0.0007
Updated  Line in:0.0004
Updated  Vectors out.001 in:0.0006
Updated  Vectors in.008 in:0.0012
Updated  Adaptive Edges.002 in:0.0017
Updated  Viewer Draw.002 in:0.0014
Updated  Adaptive Edges.001 in:0.0016
Updated  Viewer Draw.001 in:0.0012

adaptive edges on legs - too many vertices to calc. we should review this node, as Viewer Draw too

nortikin commented 10 years ago

making sphere less verticized will decrease calc

nortikin commented 10 years ago

6_4 instead of 12_4 subdivs of sphere decrease calculation twice

zeffii commented 10 years ago

viewer draw nodes should be dummy nodes, and offload all draw collections to a hidden node which does one loop.

zeffii commented 10 years ago

btw, how do you get this debug print?

zeffii commented 10 years ago

found it, 'print update timings' in addon preferences..

zeffii commented 10 years ago

proper reverse kinematics will be interesting to try :) I guess only 1 control point, the top of the foot, the rest angles must adjust to preserved edge lengths

nortikin commented 10 years ago

:+1:

enzyme69 commented 10 years ago

I was going to request FK and IK, although I resist myself, you the Zeffii and Nikitron made ones already!

Would it be difficult to have control along the length of every Edges? => new topic?

Maybe my spider leg is 3 folds => 1:1:1 and the I was thinking, hmm.. I should "slide" so the ratio become => 1:2:1.

enzyme69 commented 10 years ago

leg_motion_2

zeffii commented 10 years ago

infinite centipede

enzyme69 commented 10 years ago

Yes, I studied Nikitron Spider Octopus and came up with that.

Studying this as well :)

http://nccastaff.bournemouth.ac.uk/jmacey/MastersProjects/MSc2010/11EduardZell/MasterThesis_EduardZell.pdf

enzyme69 commented 10 years ago

At some point Zeffii, if possible, can you connect Sverchok to real 3D world, especially for Transform or Bones. Kind of related to your Kinematic.

Or is it too early?

Hey, it does resembles that movement. Surprisingly the setup was simple. https://www.youtube.com/watch?v=56spVxN33Cw

enzyme69 commented 10 years ago

Kind of getting there eventually: https://www.youtube.com/watch?v=ySapzrgfImc

zeffii commented 10 years ago

some time ago i did this in tributary.io http://tributary.io/inlet/8465013 what i like about tributary is you can program, stuff and see it appear on screen as you type, and investigate different values of variables by clicking on the numbers and dragging them with the slider.

zeffii commented 10 years ago

@enzyme69 you will only be truly free in digital 3d after a period of dedicated studying of several programming languages. A node tree like Sverchok or ICE or SOP or whatever is one visual programming paradigm, it is a good reinforcement for learning more elaborate written programming languages.

Make no mistake, using sverchok as a node editor is programming, but it's not efficient for everything. It is great for gluing large ideas with atomic parts (math node, range node) . But there are concepts which are easier to describe in written code than a node tree the size of a footbal field.

I recommend you stick seriously to nature of code and that python book. Stick especially with the python book even when some of the contents doesn't appear to be directly related to your end goal. There are concepts in string manipulation that help thinking about breaking down other types of problems.

See this Eyeofestival talk about the learning process. Amit Pitaru http://vimeo.com/69477201 .

enzyme69 commented 10 years ago

That's brilliant!

You did that in code, sometimes I wonder, how you imagine that in code. Say 3D LED cube like this below: https://www.youtube.com/watch?v=p19kmzhcaIo

And you are actually "coding" the color for an array matrix of LED, that's hard in code, right? But probably "easier" when using Dynamic Paint in Blender + Sverchok to bake the data or something. => future plan.

Anyway, indeed being able to create a setup that gives visual output, and then quickly changing the parameter "in code" with instant feedback visually, suddenly the code makes more sense.

ly29 commented 10 years ago

Yes about adaptive edges needing some work (a lot actually), but one should also be aware that it will always be a somewhat expensive node, it does a lot of work.

enzyme69 commented 10 years ago

@zeffii that's true. "people who just know how to node, but cannot code, will eventually stucked".

I am pushing myself toward the coding way. I only grasp the concept of programming last year, it was Python and Processing. My lack is in "experience" and actually practising the code. I did here and there, basic codes, but still far away

If this is a VFX Project, you guys are like the Senior Technical Artist, I am Assistant TD.

Cheers for advice and motivation.

enzyme69 commented 10 years ago

@ly29 I'll try to be careful with Adaptive Edge.

ly29 commented 10 years ago

Also what one should be aware of is that the time in Viewer draw doesn't include the callback.

@enzyme69 I hadn't coded anything more than occasional script for 10+ years when I started with sverchok.

enzyme69 commented 10 years ago

I watched that Amit Pitaru video on creative coding a while back ago. I found Amit Pitaru random musical tool back then, such a brilliant tool, still great even after 10 years. He uses Flash for coding.

Back then I was so scared of coding. Flash ActionScript is a pain too.

"Form + Code" is a good book, I mentioned about it, somewhere.

enzyme69 commented 10 years ago

@ly29 Whaaat! You are really good though. Skillful! There is also Liero at Blender Artist who said can't code, but he made some really useful Add-On.

One day, I make a useful node for Sverchok or something.

I don't know, I am happy doing node, but at the same time, I am reading "Programming Python v4" book. So, everything slowly makes sense. Fingers crossed.

Sorry for my off-topic-ness.

enzyme69 commented 10 years ago

"Paid so much money and only taught easy stuffs..." exactly true. --- while watching Amit Pitaru video

I learned and discovered so much by using 3D tool like Blender and studying programming on my own using Processing etc.

ly29 commented 10 years ago

Did some simple changes in adaptive edges based on things I learned while playing with performance in vector math 2, from .36s to .15s in certain the test file spider.blend above when U+V is set to 20. Note that this while being a big improvement, it is still a slow node.

nortikin commented 10 years ago

@ly29 great!!! You made great anyway.

@enzyme69 Python programming is easy. just anybody can start with simply things. i learned python with "google class" (not glass!) where lerned re module. You making to sverchok nearly equal job as others by only testing that thing. For sure, you cannot test as programmer as knowing all nuances, but it is only about trying to code. I started coding from fall (autumn) 2012 year on python, no much experience for sure, 1.5 years. Watched some youtube video on lists and slicing, on basic for in while if else and started to code

enzyme69 commented 10 years ago

That is a nice encouraging words.

I think you are also exceptionally good, Nikitron, I was looking at your node networks, lots of interesting tricks.

Surprisingly, your Sverchok examples that is hard to understand 5 months ago, has slowly become understood.

Maybe I have been choosing the easy paths, time to climb the rocks with bare hands.

zeffii commented 10 years ago

@nortikin you started python with Google code class with Nick Parlante (py 2.7) ? if so, me too!! I still think those are my favourite videos and class material - ever. Seeing the answers vs my solutions was a good indicator that python is highly expressive in important areas.

enzyme69 commented 10 years ago

(hand sup) me too watched Nick Parlante tutorial around 3 times and did not quite get to finish it, maybe was distracted by other thing. I probably should do it again.

nortikin commented 10 years ago

@zeffii yeah, i think, every newby have to learn python from this exercises. when you solving problem and know that there is answer, you have motivation. and it has practical usage. Google rulez