Digital Art Zone

 
   
4 of 22
4
PySwarm for PyCarrara (V0.6) Released 01/25/2013
Posted: 28 October 2013 02:45 PM   [ Ignore ]   [ # 46 ]
Addict
Avatar
RankRankRankRank
Total Posts:  6469
Joined  2007-12-04
PhilW - 28 October 2013 02:17 PM

I hope this gives food for thought.

Now I’m really proud of myself - as this is exactly how I saw myself using it. That is, until I saw that FD is planning to try and create a walk cycler… which would be much better, as it would likely remove the problems between the feet and ground (sliding).

Still. FD may take his time working on that walk designer. Like you’ve said, one might have to adjust velocity… I was thinking along the other path… stretch or contract the NLA clip to match the velocity prior to placing that check mark into the ‘loop’ box. Either way… his conversion of BOIDs to Carrara via PyCarrara is a true blessing to the Carrara Animation society as a whole. Hmmm… that has a nice ring to it… Carrara Animation Society! Phil, you wanna start a club?

Speaking of which, I wonder if this script is copping any buzz down at Carrarators. I’m so far behind in what I mean to do here, and at the Cafe, that I’m having a hard time making it to 0oseven’s cool new site. I guess he has some bugs to work out, though… so maybe I have time.

Back to PySwarm, I have been getting all sorts of imaginative ideas for uses with this script. Follow me on this, Phil… you know how you made those shaders for your particles bit on the rocket in the Advanced Training? What if we used similar techniques (without using the Particles Shader, but similar techniques) to use these BOIDs as special effects, natural effects, other scene elements? With this sort of power, we could even use this along with the powers of PyCloid to create some real, running water, I’m thinking! Flocking and Predator swarming behaviors can have all sorts of benefits to animation - even if (perhaps, especially if…) you can barely see the driven objects, due to them being nothing more than fantastical air or (with the use of PyCloid) swarms of bugs or other type of effect…

The problem is two-fold:
My imagination won’t let me sleep and
My project won’t allow me the few minutes to try the script for myself, right now

Soon, though. I’ve watch the video and would love to see it again, but I’ve finally got that song out of my head. Hmmm… dilemmas.

 Signature 

Dartanbeck @ Daz3d          Check out the Carrara Cafe          ►►►  Carrara Information Manual   ◄◄◄

Profile
 
 
Posted: 28 October 2013 02:56 PM   [ Ignore ]   [ # 47 ]
Addict
Avatar
RankRankRankRank
Total Posts:  6469
Joined  2007-12-04

Oh… about matching the feet:
Also, like you’ve said (PhilW), much of the time this shouldn’t really be an issue. We can always hide the feet-to-surface view in some way.

I was just watching Star Wars (AGAIN, says Rosie! lol) Episode I and noticed a lot of places where CG characters feet are often hidden from view where they must meet the surface. It’s amazing how such a small detail can totally blow a video. I was playing a game and saw, in some of the cinematic scenes, that the feet were sliding. It’s funny because, if the feet weren’t sliding, I’d never have even noticed the feet at all. I’m not the sort of person that watches something with my judge-scoring pen and pad (like evilproducer and his actor/director brothers!) looking for places that suck. You can get away with a lot of errors and still collect me as a fan - or so I might think. But Star Wars doesn’t even really try to hide the fact that they’re masking the foot-to-surface contact! They just plunk a piece of scenery just in front of it - like a 2d plane of plant life, like grass or something. When I finally do get round to scrutinizing, I see this billboard placed in such a way as to mask the fact that feet are sliding! lol
The moral to that story is that it’s far better to have someone notice that you’ve placed a billboard, that to have everyone notice that feet are sliding! wink

I’ll often just give the scene a good reason to keep the camera elevated enough to not shot foot-to-surface contact, unless the feet are not sliding - where I happy show them off! smile

 Signature 

Dartanbeck @ Daz3d          Check out the Carrara Cafe          ►►►  Carrara Information Manual   ◄◄◄

Profile
 
 
Posted: 28 October 2013 03:00 PM   [ Ignore ]   [ # 48 ]
Addict
Avatar
RankRankRankRank
Total Posts:  6469
Joined  2007-12-04

Um… before I get into trouble on the above post:
There are many other reasons to mask the feet besides them sliding. Perhaps they weren’t sliding at all and there was another reason. So be it. The point remains the same. Getting great mass movement - especially in such a natural way - is far more important than worrying about foot slide! lol

 Signature 

Dartanbeck @ Daz3d          Check out the Carrara Cafe          ►►►  Carrara Information Manual   ◄◄◄

Profile
 
 
Posted: 28 October 2013 04:43 PM   [ Ignore ]   [ # 49 ]
Power Member
RankRankRank
Total Posts:  1226
Joined  2005-04-12

Gosh, there’s a lot there!  Just to pick up on your thoughts about running water, I think you’d need to use a particle-based system rather than anything that PySwarm offers. Keep in mind that PySwarm requires separate named instances of an object, I’d hate to have to do thousands of those! (But then again, maybe there is a way to script that!).

Interesting about finding sliding feet in Star Wars and using props to obscure that for a lot of shots - goes to show that we all have the same issues!  There are a few ways to do this
- place the camera low and shoot upwards so that the feet are not in frame;
- use an object or scenary (or even dust) to obscure the view of the feet;
- have so many “actors” that the feet aren’t visibly as they are obscured by other actors;
- or simply film from the waist up!

Profile
 
 
Posted: 28 October 2013 07:11 PM   [ Ignore ]   [ # 50 ]
Addict
Avatar
RankRankRankRank
Total Posts:  6469
Joined  2007-12-04
PhilW - 28 October 2013 04:43 PM

Gosh, there’s a lot there!  Just to pick up on your thoughts about running water, I think you’d need to use a particle-based system rather than anything that PySwarm offers. Keep in mind that PySwarm requires separate named instances of an object, I’d hate to have to do thousands of those! (But then again, maybe there is a way to script that!).

That’s where PyCloid comes in wink
PyCloid is a particles plugin by the same author as PyCarrara.
Using the same attractor that uses PyCloid as your BOID in PySwarm!
For many things you’ll be allowing the particles to do the visual work so the object itself has no other needs - just to be the attractor for PyCloid and the BOID in PySwarm, and you can flock these particles. And particles can really be anything! Just a few spurts here and there… or a massive cloud. They could even drop particles that go nowhere, too. But with the power of PyCloid… it gets me thinking all kinds of thinks. smile

So how about this:
Make a model of the river bed or a water slide… etc., and run the boids through it. The BOIDS are using PyCloid enhanced emitters.

Go to thePyCloidsite and check out the videos in the Gallery menu. Otherwise, here’s a Playlist of all of Frederic’s Demo Videos for PyCloid to help show off it’s amazing abilities with a single link. I also want to model a low-flowing current mesh and make an animated texture map for current changes around rocks and such. Hey, it’s my dream, right? Dogwaffle Rocks for these sorts of things. I wanna try it. But I’ve also been kicking around the idea of using particles with special shader settings that make them fade from visibility further away from center, where there’s a nice water shader. With multiple BOIDs, you can drastically change the size, shape, everything, about the particles. All PySwarm cares about are the names and the hot points. Am I even awake? I better go and check.

 Signature 

Dartanbeck @ Daz3d          Check out the Carrara Cafe          ►►►  Carrara Information Manual   ◄◄◄

Profile
 
 
Posted: 29 October 2013 04:57 AM   [ Ignore ]   [ # 51 ]
Active Member
Avatar
RankRank
Total Posts:  546
Joined  2011-07-03

I read slowly through the dialogue from yesterday, and probably need another day to digest it all. But so far, I’ve taken away several things of immediate value:

1. PySwarm V0.3 was released to mostly test the water. It was not really intended to offer enough functional control to do anything meaningful, but allow others to experiment with it. With that in mind, it seems to be serving its purpose of creating and gelling some wonderful ideas in ways I had not thought of. My intent with V0.4 is to expand on the basics of V0.3 to make it usable to animate BOIDs in real (though somewhat basic) animations. Thus, I am attempting to adapt the improvements I am making to handle the “winds of change” in its potential use. Later today, I will post a list of the changes/additions I am working on for V0.4, and ask for feedback to see if that set of changes work.
- To illustrate the value of these discussions, one change I am making after reading the above description is I need to have a “minimum speed” setting in addition to a “max speed” setting. I was planning that for V0.5, but a minimum speed would be useful to reduce the “sliding” effect of slow moving BOIDs on a surface. So I am adding that to the V0.4 changes.

2. While I had originally intended to add “cycling” (I guess we’ve not quite settled on the right term to use) to V0.4, I may hold off until V0.5 and let others test integrating NLA loops into PySwarm motion. I suspect, as mentioned in the above posts, it is possible to create animations that would pass the litmus test of the average viewer, though maybe not under technical scrutiny.

3. After releasing V0.4, I will sink my teeth into PyCloid and see how this might be integrated into PySwarm capabilities. I have been meaning to do this, and it would probably be fruitful to do that sooner than later. It is still not clear if and how individual particles can be manipulated. It would be so much easier to drop a particle emitter into a scene and let it “pump out” the BOIDs. With the ideas formulated so far, I now have a better lens through which to view the PyCloud plug-in. smile

4. After looking at PyCloid, I need to contact Frederic. There are a number of changes I’d like to suggest for PyCarrara, now that I have a specific application for it. One of them is whether it is possible to have PyCarrara actually duplicate BOIDs for the scene. That would simplify a lot of upfront work! I have other needs.

Thanks Dartan and PhilW for sharing your thoughts and energy!

 Signature 

The most complex object in mathematics, the Mandelbrot Set ... is so complex as to be uncontrollable by mankind and describable as ‘chaos’. — Benoit Mandelbrot

Profile
 
 
Posted: 29 October 2013 09:50 AM   [ Ignore ]   [ # 52 ]
Active Member
Avatar
RankRank
Total Posts:  546
Joined  2011-07-03

Here are the current modifications I am working on for V0.4. Most of these have already been scripted, and I just need to finish testing them.

1. Add MAX_TURN rule:
This rule limits the angle an individual can turn (e.g., bank) during a given time period.

2. Add LANDING rule
Individuals will land briefly if their path takes them to the ground.

3. Start and End times
Modify the current “sim_time” variable to set specific start and end times in the simulation for PySwarm to run.

4. Initial positioning
Allow the following positioning options to start the simulation:
  (1) with the current placement of individuals
  (2) inside a circle with a predefined center and radius (flat surface)
  (3) randomly placed inside the bounding 3D space

5. Initial velocity
Allow the following initial velocity options to start the simulation:
  (1) Set velocity vector based on the direction the individuals are facing (heading) and initial speed value (speed)
  (2) Set velocity vector using a predefined vector for all individuals
  (3) Set velocity vector randomly

6. 2D/3D Space rules
Allow conditions to limit movement on a surface (2D) or in a 3D space. Phase 1 2D (V0.4release) is for flat surfaces; phase 2 (in a later release of PySwarm) 2D is for terrain following. This goes with mods to setting the initial positioning and velocity vectors.

7. Pitch and roll
Adding banking and pitching adjustments when individuals are in a turn, climb, or dive.

8. CONTAINMENT modification
Containment structure can be a box, cylinder, or a sphere

9. Rule adjustment parameters
Change rule adjustment parameters to be on a scale where a value of 1 is for normal operations, values near 0 being “weak,” and values over 1 being “strong.”

10. Minimum speed
Some objects must maintain a minimum speed (they can’t stop). Add the parameter “min_speed” to the SPEED_LIMIT rule calculations.

If there are any other suggestions you can think of that you believe would be useful in starting to create some basic (i.e., pre-cycling) swarming animations, please let me know!

 Signature 

The most complex object in mathematics, the Mandelbrot Set ... is so complex as to be uncontrollable by mankind and describable as ‘chaos’. — Benoit Mandelbrot

Profile
 
 
Posted: 29 October 2013 10:06 AM   [ Ignore ]   [ # 53 ]
Power Member
RankRankRank
Total Posts:  1226
Joined  2005-04-12

That looks to be a terrific list and should be able to produce some very varied animations!  You appear to be making very fast progress on this, great work.

Profile
 
 
Posted: 29 October 2013 10:17 AM   [ Ignore ]   [ # 54 ]
Addict
Avatar
RankRankRankRank
Total Posts:  6469
Joined  2007-12-04

Yeah, kudo, FD… Kudos!

 Signature 

Dartanbeck @ Daz3d          Check out the Carrara Cafe          ►►►  Carrara Information Manual   ◄◄◄

Profile
 
 
Posted: 29 October 2013 04:19 PM   [ Ignore ]   [ # 55 ]
New Member
Avatar
Total Posts:  7
Joined  2007-09-21

@FD: I am so happy to see PyCarrara coming back to life !
Integration with PyCloid may pave the road towards crowd animations with more than 100.000 objects.
I am looking forward PySwarm project next steps !
Frederic.

Profile
 
 
Posted: 29 October 2013 04:55 PM   [ Ignore ]   [ # 56 ]
Addict
Avatar
RankRankRankRank
Total Posts:  6469
Joined  2007-12-04

The master himself!
Yeah… I think FD was reading me that I wanted him to integrate PyCloid functions into his PySwarm script. I mean… if he can and wants to… sure! But I was actually dreaming of using BOID bots that already have PyCloid applied to them. I have many other dreams for this thing. But I wanted to release those thoughts to the public before I drove myself mad! That’s a lot of awesome to keep trapped up inside!

Now I have to dig up that great video that McGuyver made, using PyCloid to make running water. Study it a bit… get lost (again)... and then ask him how in the world he made that look so freaking real.

 Signature 

Dartanbeck @ Daz3d          Check out the Carrara Cafe          ►►►  Carrara Information Manual   ◄◄◄

Profile
 
 
Posted: 02 November 2013 09:21 AM   [ Ignore ]   [ # 57 ]
Active Member
Avatar
RankRank
Total Posts:  546
Joined  2011-07-03

Update
I will be releasing PySwarm V0.4 for public use after a few more days of testing. I will update the title and first posting in this thread when it is released.

You can watch a 5 minute demo reel for this version showing some of the new features and capabilities:
http://www.youtube.com/watch?v=gJje10XVy-Q

My hope is that, with this version, there are now enough features and capabilities that people can start creating real animation sequences.

Here is a brief summary of the improvements in V0.4:
1. New MAX_TURN rule
2. New LANDING rule
3. Now set start and end simulation times
4. New initial positioning options
5. New initial velocity options
6. New 2D/3D space rules
7. Pitch and bank added
8. New CONTAINMENT shapes
9. Improved rule adjustment parameters
10. New minimum speed
11. Improved algorithm and bug fixes
12. Input error checks and warnings

You can find more information on these changes on this post within this thread:
http://www.daz3d.com/forums/viewreply/466706/

 Signature 

The most complex object in mathematics, the Mandelbrot Set ... is so complex as to be uncontrollable by mankind and describable as ‘chaos’. — Benoit Mandelbrot

Profile
 
 
Posted: 02 November 2013 11:25 AM   [ Ignore ]   [ # 58 ]
Power Member
RankRankRank
Total Posts:  1226
Joined  2005-04-12

Looking forward to it - some great examples in your video too.

Profile
 
 
Posted: 02 November 2013 12:47 PM   [ Ignore ]   [ # 59 ]
Power Member
Avatar
RankRankRank
Total Posts:  1639
Joined  0

Wow! This is amazing! Quick someone render the next Ender’s Game!

Just a suggestion on your sample render videos FD, to either turn shadow strength down or render with a shadow buffer light…. The stingray’s shadows are dark and sharp, and it makes their motion sometimes difficult to understand.

Incredible stuff!

 Signature 

320+ TUTORIALS for Carrara at CARRARA CAFE
C3DE - CARRARA 3D EXPO MAGAZINE - the showcase for Carrara Artists

Profile
 
 
Posted: 02 November 2013 01:39 PM   [ Ignore ]   [ # 60 ]
Active Member
Avatar
RankRank
Total Posts:  546
Joined  2011-07-03
holly wetcircuit - 02 November 2013 12:47 PM

Wow! This is amazing! Quick someone render the next Ender’s Game!

Just a suggestion on your sample render videos FD, to either turn shadow strength down or render with a shadow buffer light…. The stingray’s shadows are dark and sharp, and it makes their motion sometimes difficult to understand.

Incredible stuff!

Good point, Holly. Will do. Thanks!

 Signature 

The most complex object in mathematics, the Mandelbrot Set ... is so complex as to be uncontrollable by mankind and describable as ‘chaos’. — Benoit Mandelbrot

Profile
 
 
   
4 of 22
4