How to grow hair by color.

So I hear you ask, "How can I make soft stands grow according to a color?"
Well I answer in a kind - not to overly smart voice -  "Let me show you."

First lets look at color.

Using ICE we will grow hair with different lengths using the RGB value from a texture map. Blue being long hair and the rest being short or so on. Only problem is that some colors are not just blue they are also red like say Magenta(see color wheel below) or yellow(Green and Red) or Ocean(Green and some Blue) and so on. So we will have to compensate for that.

 *click to make big*

You can see Magenta is 255 - 0 - 255 (in ICE that would look like 1 - 0 - 1), meaning it is a hundred present blue and a hundred present red. Using an If statement that simply says if something is a hundred present blue then make the hair longer there wont really work well. So we also need to say that, if you happen to have two values that are 255(or 1) then don't use that color to grow the hair longer. If that makes sense :/

Lets look at the ICE setup...

NOTE: If you don't know how to Texture strands using a texture map, never fear. Here is a link to a post I  did  -----> texture map.

Now to get the hair to be either short or long depending on whether or not it is the color you want to be long(Blue), or short(every other color). In the ICE TREE below you will see an If statement that tells the strand length to be either short or long. Then I simply duplicated that tree for red and green values. Using the select case node you can then choose between red, blue, or green if you make a compound.

I also made a bleed option to include the color values like Magenta and Yellow using two more if statements.

 *click to make big*

Blue example:

 *click to make big*

Green example:

 *click to make big*

Red example:

 *click to make big*

Strands with a bleed of 0.4

Strands with a bleed of 0.8

Things I would like to include and improve:
Bleed hair has a fall off growth.
Hair grows in over time .
you can choose only bleed values.

So I will probably be updating this post in the near future.

To be continued.. :)

Marvelous Designer 3

Started learning Marvelous Designer 3 for an upcoming job..... AND MUCH FUN WAS HAD THAT DAY! \:D/

Love the pattern making and the easy to use interface. Here is what my first skirt and bodice looks like...

 *click to make big*

Got the pattern for the bodice from a real clothing pattern, and it turned out really nice. The skirt was just me seeing if I could "thumb suck" some clothing, think I need more practice with real patterns before I can be any good at making my own designs.

Still cant wait to make more clothes !! I feel like a real dress maker *SO MUCH POWER* in this program. I also have to learn me some N-cloth and Houdini, so super exciting times ahead for me.

Here is my just importing the model into Softimage and applying Syflex.

End

Wednesday, July 10, 2013

So there are some hard times ahead in the 3D industry...

WHEN THE OTHER GUY IS SLEEPING!
I'M WORKING!
WHEN THE OTHER GUY IS EATING!
I'M WORKING!
WHO AM I?

I AM A CHAMPION!

I'm not going to point fingers, and I don't care whose fault it is. I'm just gone be awesome instead...

Monday, June 24, 2013

91,6% for my python course HOORAY!

 *Click to make Bigger*

Wednesday, June 19, 2013

Sneak peek of Khumba from Annecy....

Here is a sneak peek at the movie(Khumba) I was working on. My main responsibility as Head of the Fur department was the creation of the fur, feathers and scales. I also got to groom and do a lot of the TD work.

All-in-all was an awesome load of fun. \:D/

3DesignCollective....

Need any Freelance work done? Check us out for a quote :D

 *Click to make bigger*

Friday, May 17, 2013

My first Python game HOORAY!!

Below is a video of me playing against myself -lol- I suck at playing pong....

Loved making my first little game in python, though.
Most fun part was creating the simple reflection and collision we needed for the ball. I use some vector math and an if statement. There was also the fact that the paddles cant go off screen, and they needed to only move when you hit the correct keys on the keyboard.

The math looked something like this.....

For movement:

Math:
p(t+1) = p(t) +(1)(v(t))

p = position
v = vector
t = time

Python:
New pos      Init pos
p[0] =     p[0] + v[0]
p[1] =     p[1] + v[1]

ball_pos[0] += vel[0]
ball_pos[1] += vel[1]

*add a negative value on the horizontal vector to make the reflection off of paddle.*

ball_pos[0] += vel[0]
ball_pos[1] -= vel[1]

and then to get distance between two points:

Python:
dist(p, q)
return math.sqrt((p[0]-q[0])**2+(p[1]-q[1])**2)

then you pretty much just say if point 0 is in the same range as point 1, point 0 either reflect off of the pad or hits the wall.

I used a local acceleration variable when the player hits a key(up or down)

I made an if statement that stopped the paddle from going beyond its own height off screen

Python:

Anyways was awesome fun :D/

Sunday, May 12, 2013

Collatz Conjecture In Python and ICE...

Statement:
Consider the following operation on an arbitrary positive integer:
If the number is even, divide it by two.
If the number is odd, triple it and add one.
In modular arithmetic notation, define the function f as follows:

Collatz in Python:

To make this collatz conjecture I used a simple if statement, see code below...

 *click to make bigger*

Here is a video of how that all works with a gui:

Collatz in ICE:

In ICE I used the same idea as I used in python. Then just added a repeat node to get an updated n number.

 *click to make bigger*

What that looks like:

End :D

P.S :

Monday, May 6, 2013

Convert miles to feet....

To convert miles to feet you need to know how many feet there is in a mile. Google says....

*I'll take their word for that*

In python to convert would look something like this:

 *click to make better*

So how could we do this in Softimage and ICE?

 *click to make bigger*

My first attempt gets the right answer for the conversion,  but I would like it to say "...miles equals how ever much feet" like in the example in python so not very happy yet.
It seems that the string nodes wont be of much help either, as they don't convert floats to string like in python.

Will have to look at a different way around this problem. :/

too be continued...

Tuesday, April 9, 2013

Sector/Segment Area

There are two main "slices" of a circle:
The "pizza" slice is called a Sector*white selection below*

 *Click to make bigger*

And the slice made by a chord is called a Segment. *white selection below*

 *Click to make bigger*

Lets take a look at this in Softimage....

* Watch in highest quility possible*

To work out the area of the segment and sector you will use the formulas:

Area of Sector = ½ × (Î¸ × Ï€/180) × r2   (when Î¸ is in degrees)

Area of Segment = ½ × ( (Î¸ × Ï€/180) - sin Î¸) × r2   (when Î¸ is in degrees)

*So basically what we need is the angle of the "center" corner, and the radius of the circle the sector belongs too*

 *Click to make bigger*

What these formulas will look like in ICE - once you have the angle and raduis - :

Segment area:

 *Click to make bigger*

Sector area:

 *Click to make bigger*

So you will need to work out the lengths of the three sides of the triangle that fits inside the sector "pizza slice".
I did this by simple creating cluster centers on the last point of the three curves then getting the length between them....

 *Click to make bigger*

Here are the tree's for that...

 *Click to make bigger*
they are all basically the same...

 *Click to make bigger*

 *Click to make bigger*

....then you can work out the angle of the center corner in the circle your sector is part of.
I used the standard law of cosines node for this one but here is the math formula:
cos A = (b2 + c2 - a2)/2bc

I used this law because I already had all three side lengths worked out, but never fear here is a link to other ways of working out you triangles if you have say one angle and two sides...

 *Click to make bigger*

 *Click to make bigger*

You can also work out the "arc length" - the blue line in the image below - of your sector, by using the formula:

L = (Î¸ × Ï€/180) × r

 *Click to make bigger*

Here's that ICE tree...

 *Click to make bigger*

And there you have it. If you ever need to work out how big a pizza slice is ..... now you can do it :)

End

Monday, April 8, 2013

Lindy Hop

The animation project I'm buzy with at the moment involves some really cool dancing reference.

So started animating out this awesome dance routine for a learning challenge.

This is the Blocking for the first 210 frames ...... he he loving it so far.

For now the only issue has been gimble lock.... but with them turning around so much and stuff, its to be expected.

Tuesday, March 26, 2013

Even more fractal fun....

"THEY NEVER END!" *runs around in a circle like her hairs on fire*

Line replacement Fractals

Def : Draw a fractal based on iterated line replacement

Koch curve and snowflake

Levy Tapestry

Cross-stitch Curve

Cresaro Fractal

Minkowski Sausage
*Doesn't look anything like a sausage*

Space-filling Curves

some variations on the Peano curve I made before.....

3D Fractals

Just some random 3D fractals I've been playing with.

End

Tuesday, March 12, 2013

some more Fractals.....

Just some more fractal fun I've been having...

Heighway Dragon Curve

Sierpinski's n-gon

Durers Pantagon

Peano Curve

This is my first space filling curve fractal... made pretty much in the same way as the Sierpinski ones.

Will be adding more post on fractals soon ;)

Friday, March 1, 2013

Sierpinski and self-similar sets...

WacÅ‚aw Franciszek SierpiÅ„ski was a polish Math-magician - aka Grand Master of set theory, Senior Warlock of number theory, dude who liked fractals - and school teacher.

He is best know for "Sierpinski's triangle" (in 3D its called SierpiÅ„ski tetrahedron)

his carpet - also related to SierpiÅ„ski Sponge or Menger's Sponge when in 3D.

and his pentagon O_O

*He also got to be on a coin, which is pretty cool.*

These beauties are known as iterated function systems or IFS, and we will be looking at how we can build some self-similar fractals using Softimage ICE in this post.
**All these IFS have fixed Attractors.**

Some fractal Terminology...

L-Systems:

A Lindenmayer system, also known as an L-system, is a string writing system that can be used to generate fractals with dimensions between 1 and 2.

Sierpinski's triangle

To create this fractal you need the following things:
1. repeat on counter node
2. clone point node
3. basic kind of loop
*Just a note, this is a really render and ram intensive way of doing any fractal, but it is cool if you just want to get your head around the math of L-Systems*

In Image A you will see that I have two parts to my setup.  Part one is adding a single point to a pointcloud, and part two which I call the I.F.S is where that point gets cloned and repeated for the fractal.  This is the basic setup for all four of Sierpinski's fractals shown above.

Image A
 *click on image to make bigger* To start add a single point to an empty pointcloud at the origin. As shown in Image B.  Make that point into a cone or create your own triangle and use that as an instance shape.  The scale of the triangle/cone 10, 10, 10. *Its easier to see the small iterations when the first triangle is nice and big*
Image B - Attractor NODE
 *click on image to make bigger* After that you will need to setup the tree shown in Image C.  Here is where it gets interesting, to build the ICE tree shown in Image C you will have to build all the trees in images C1, D and E. In the cast of Sierpinski's triangle, the first Iteration on the Repeat with counter node will produce 3 clones of the original triangle - you want to turn on the delete source if cloned option - and then 9 triangles by the second iteration and so on.
Image C - IFS_Triangle NODE
 *click on image to make bigger*

What the Log node - Image D - does is translate the new triangles so that they fit inside the original triangle.  We do this with the help of the point ID's and a select case node, run by a loop.

Image D - log 3 NODE
*click on image to make bigger*
 The translate local point - Image C1 -  node makes sure that the previous point position gets calculated as well as the new point position.*I got this useful little node from doing Chris Marshall's tutorial on a tree.*

Image C1 - Translate local points NODE
 *click on image to make bigger* In Image E we subtract the Point ID by one so that it starts with zero as a value just like the select case node.  Then we feed it through the modulo node to be modulated by the number 3 - number of clones in IFS.
Math behind the log node

Image E - Loop Value Fractals NODE
 *click on image to make bigger*

In Image F you can see the ram usage and render time if your on an Iteration step of 12 with 531 441 triangles in your scene.  I'm totally looking into ways of speeding this up.  My poor laptop can't really handle this much ram going to a render.

Image F
 *click on image to make bigger*

Sierpinski's Triangle

Sierpinski's Tetrahedron

Sierpinski's Carpet

Once you've mastered the Triangle feel free to try and make his carpet as well.  Image AA and AB shows the log and scale for that. Start with a Box with a scale of 10 and then fit 8 new boxes to the side facing the X translation.

Image AA
 *click on image to make bigger* Note the difference in the scale being 0.667 instead of 0.5 like with the triangle
Image AB
 *click on image to make bigger* This one is even worse on the ram side but really nice looking. Image AC
 *click on image to make bigger* Sierpinski's Carpet Sierpinski's Sponge

The arrowhead is really interesting because you don't just work with the center point position like you did with the triangle and the carpet, you now work with the starting point 0, 0 - the root of the cylinder - and the end position 0, 1 - the tip of the cylinder, like with the triangle you will have a Log of 3 here, but now you also have to deal with the orientation of the cylinders.

Start with a single cylinder that is rotated to lay horizontally with a scale of  5, 10, 1.  Now just build Image BA and BB into the IFS node.

Image BA
 *click on image to make bigger*

The scale for this one is also 0.5 just like the triangle.

Image BB
 *click on image to make bigger*

This one becomes really heavy after 12 iterations couldn't even render it...

Image BC
 *click on image to make bigger*

Sierpinski's Pentagon

To make the beautiful pentagon you will need to make a pentagon and the use the instance shape node to add it to your point in your pointcloud.  This one is a weird one... It has a log with 5 clones and a scale of 0.618 but it also has an offset of sorts.

Image CA
 *click on image to make bigger*

The offset comes in with the 5 sides of the pentagon being in strange places : / See Image CB for the strangeness.

Image CB
 *click on image to make bigger*

All of them seem to come in at around 2 to 4 min a frame with anything from 600mb to 1700mb of ram usage.

Image CC
 *click on image to make bigger*

Sierpinski's Pentagon

End :D