Sunday, September 09, 2007

Looney Tunes

Ever wondered what was it like, grow up in the 1950s ? You could watch Looney Toons on tv. It is actually pretty hard to find cartoons better than those.
Their synchronicity and general relation to music consubstantiate a multi-instance, hard to do product in a smooth and easy watching and listening experience.
That was mainly the innovative art of Carl Stalling. His main musical inspiration, on the other hand, was Raymond Scott, composer, pianist and electronic instrument inventor.
Among other stuff, Scott invented the polyphonic sequencer and the Clavivox. Do you find it reminiscent of the 70’s MiniMoog? Well Robert Moog used to help Scott with his equipment production. SOW - download this Audio Unit* (a “Ring Modulator") and place it in ~/Library/Audio/Plug-Ins . Next time you open your favorite audio application you can experiment with this effect.
*Works with Mac OS 10.3 and 10.4

Posted by filipe on 09/09 at 12:34 AM
(0) CommentsPermalink

Friday, September 08, 2006

The Emperor Strikes Back


Nautilus pompilius, the Emperor nautilus.

If you dive now and then, you must have seen them. I mean the Cephalopods ("Mollusc with feet on their heads"). They have rather sudden humour / color changes, but it is the look in their eyes that I always find so surprising. They poses a detailed vision, as good as ours. The first time I saw a cuttlefish face to face I had these turbulent thoughts one after another (a tropical fish in cold waters? because of the vivid colors - why and how does it move backwards? - a fish with human eyes?).
Cephalopods are mainly octopus, squid and cuttlefish. But also such oddities as argonauts and nautilus.


Cuttlefish and argonaut.

The Nautilus’s eyes denote an early body plan (Paleozoic, c. 550 milion years ago). They do not have a cornea or lens.
Nautilus’s shell has up to 30 chambers; the animal lives in the outermost (which is geometrically irregular).


Kind thanks to Dr. Rogério Barroso and the Hospital of N. Sª do Rosário for the creation of the X-ray resources.

Posted by filipe on 09/08 at 05:01 AM
(5) CommentsPermalink

Sunday, April 20, 2008

Water

From the Pixel3d Forum, 2001.  smile

It has been a while since I began trying to emulate water wave movement with 3d software. Short after I read a nice article by Jimy Arndt (“Undulations”, P.I.U.) I revisited Curtis’ online post (do not miss it) on the subject, I decided to put together some notes I have been taking now and then. After seeing a lot of effort by several developers, I remain unconvinced with the results [by the way, the best (ocean) wave representation I have seen was made with Tsunami for A.E.].
Realistic 3d ocean waves, whether done in mesh displacement or shader emulation, are heavy on the CPU. That is because only in some special cases they can be represented accurately by the sinusoidal function. I will try to point out the main concepts in a brief discussion.
Any regular, oscillating disturbance which spreads through a medium may be called a wave. In a transverse wave, the particles of the medium move to and from at right angles to the direction in which the wave is travelling. Ripples on a pond (I have seen good ones made with Pixels) are an example of transverse wave motion; the direction of propagation is horizontal, and a small particle floating on the surface moves up and down but is ultimately left in its original position after the passage of the wave. It is essentially the disturbance, which moves forwards, not the water (as long as the wave does not break, there is no wind and the friction with the ground is negligible).
In longitudinal waves, the particles of the propagating medium oscillate forwards and backwards in the direction of the wave motion, but here too their mean position does not change. Sound is an example of longitudinal compression wave. The particles of the medium compress and rarefact and these regions advance, not the medium.
The essential parameters of a wave are its wavelength (L), its amplitude (a) or wave height (H = 2a), and its period (T), which is the time interval between successive crests passing a fixed point.
The number of waves which pass a fixed point in unit time is the wave frequency (f) and is equal to 1/T.
The speed at which the wave is moving ( c ) is thus given by:

C=L/T.

Wave steepness is defined rather arbitrarily as H/L.
The passage of wave produces a displacement (ro). This is frequently considered as a function of distance (x) at a fixed time, or as a function of time (t) as a fixed distance. If the wave is assumed to have sinusoidal profile these are simply harmonic functions,

ro = a*sin [(2*pi*x)/L],

ro = a*sin [(2*pi*t)/T].

However, if you are in charge of a boat in a middle of high waves, even in a river, you will better know that the front part of your boat must face the wind, because waves wont’t behave according to sinusoidal. Even if they all propagate in the same direction, which is highly rare, they will tend to have logarithmic attack and exponential decay. Furthermore, they will break and form spirals.
Other rather interesting alternate profiles describe steep waves as trochoidal functions. A trochoidal curve is the path traced by a point on a circular disc as the disc rolls along a straight line. If you ask a child to draw an ocean wave, it is higlhy probable that he/she will draw either triangular or trochoidal-like waves. (Children tend to draw what they see, before they are misguided by narrow-minded teachers).

It can be shown that the speed c of an individual sinusoidal gravity wave
c = sqroot [(g*L/2*pi) * tanh (2*pi*d/L)]

where d is the depth of water. But I digress. The point is ripples, wavelets, waves with or without foam crests and spray are mainly cause by wind and/or tidal movement. The actual mechanism by which waves are generated is still poorly understood. Empirical studies show that when wind blows at constant speed, it generates a wave field which stems from the superimposition of a wide variety of simple wave trains with different directions, periods and lenghts.

Posted by filipe on 04/20 at 02:04 PM
(0) CommentsPermalink

Friday, February 15, 2008

Schnecken

Snails have obvious limitations but watching ( in situ ) a swimming Aplysia is such a wonderful experience.

http://www.youtube.com/watch?v=Jlbu7BjFK6s&NR=1

Snails move by rhythmic contractions of the muscular foot.
Glands in the foot secrete a layer of mucus on which they slide.
Slugs do not have shells but are protected by a layer of mucus instead, so they must live in moist places.
Their tegument (skin-like) bas relief together with the mucus reflective and refractive properties are impossible to emulate in 3d, right?
Well someone has consitently proven it is not so.

Posted by filipe on 02/15 at 10:31 PM
(1) Comments • (0) TrackbacksPermalink

Saturday, January 19, 2008

John F. Walté update

See astounding new work from John here.

Posted by filipe on 01/19 at 11:37 PM
(0) Comments • (0) TrackbacksPermalink

Friday, December 28, 2007

MacTermen played with Wacom tablet

Mactermen with Wacom:

http://www.youtube.com/watch?v=dkjoUoebtZU&feature=related

Posted by filipe on 12/28 at 12:24 AM
(0) Comments • (0) TrackbacksPermalink

Thursday, June 07, 2007

Sandro Botticelli

During the last decades of the XVth century there were far more good painters than sponsoring churches (and there were plenty of those as well). Being a disciple of Lippi he worshiping pure Beauty and his art was more happy consequence than a cause. Boticelli much admired Pollaiolo’s typical ‘moving’ vigorous wiry figures. Botticelli followed Policleto’s rules: the goddess figure bends away from the axis as if she follows the movement of the shell brought by the sea. The main figure’s sensual and splendid nudity represents an insolit fusion between mysticism and paganism, implicit movement and ecstasy, chimera and reality.

Posted by filipe on 06/07 at 02:15 PM
(0) Comments • (0) TrackbacksPermalink

Saturday, December 09, 2006

A tutorial by Rick Garza

In 1995 Andrew Bryant developed one of the first Mac-Only 3D programs. He called it PixelPutty; a silmple yet powerful program addressed at meeting the needs of a young 3D market. At the time there were very few professional 3D programs for the Mac.

It has been 11 years since PixelPutty was introduced. Enter Pixels3D v5.5…. P3Dv5.5 has developed into a full featured professional application capable of generating powerful animations and still images rendered with Tempest. The Tempest render and ShaderMaker have proven to be a industry strandards and have now been licensed and integrated into products such a Poser.
One of the earliest users of Pixels tools has been Rick Garza, a talented artist who has embraced Pixel’s unique work-flow to produce stunning imagery. Rick gracefully agreed to send us a tutorial unveiling one of his powerful animation techniques based on scripting and inverse kinematics.

Paul Moebius

Chains

Hello, my name is Rick Garza. I live in the Rio Grande Valley in South Texas. I ‘ve been a Pixels user since version 2.1 if I remember correctly. I’ve always felt comfortable using Pixels and hopefully you will also.  Today I wanted to give you, the readers, a small walkthrough on making a swinging chain.  I’ll try to keep the steps simple, but informative. I’ll be using Pixels 5.5, a demo can be obtained at http://www.pixels.net .

Let’s start out by making a link for our chain. Start Pixels up, which will open the default scene, if we look on top we’ll see our favorites bar, let’s select the Torus icon.

Change the default settings to match the picture below.

Let’s reshape it a little to make it look more like the part of a standard chain link. If you’ll notice, each of the four views have sort of a small menu bar. 

In the middle it has the four main tools of any 3d package. In order they are the Selection tool, Translate or Move tool, Rotate tool and the Scale tool. Go ahead and select the Scale tool.  In our front view you will now have axis’ with square endpoints to let you know you are using the Scale tool. Each color is for a certain axis: green for y, blue for z and red for x. Click and drag on the red line or endpoint to scale our link on the x axis. Let’s scale it down to about .65 to give it an oval look.

Now we’re going to change the position and rotation, but this we will be using the Attribute Manager(AM). If you look to you’re right you will see the AM which has collapsable arrows to hide/unhide all the information for our current scene.  Collapse the Objects list to reveal all the items in our scene.



Change the “x” Rotation of our chain link to “90.0” and change the “z” Position to 1. As you can see our link is now lying down and has moved forward.
Now we want to keep it in this position so let’s go up to our main menu and click on Control and select Park.  This will keep the changes we’ve made to the object, like scaling, but reset them back to their defaults.  Now we’ll start building the rest of the chain. With our link selected, we’re going to duplicate it. You can do this by either going to the main menu and clicking on Edit->Duplicate or use the keyboard shortcut “command-d”.  Now we’ll position our new link at the end of the first one. We can use the Move tool or the AM. Move the new link to about 1.6 on the “z” Position and let’s also rotate it “90.0” on the “z” Rotation. Now you should have something similiar to the picture below. We are going to select these two links(shift-click) and duplicate them. You’ll see in the AM two new links were created and are already selected.  Using the Move tool, move them on “z” to position them on the end of our second chain link. Repeat this process once more so we have six links in our chain.

Now just like that we can’t really do much with our chain, so we’re going to add an IK Chain so we can move move it around. If we go to the main menu, under Special->Inverse Kinematics, you’ll see you have a couple of different options. We’re going to choose “IK Chain”. Now when the window pops up you’ll see 3 different settings we can change: Name, Number of segments and Segments length. We’ll leave Name at it’s default. For Number of Segments, well we have six links, so we want 6 segments. Segment lengths we’ll have to do by a little trial and error. If you look at any of your views you’ll see the grid made up of squares. These squares are 1 unit in length, that is if you haven’t changed any of the default settings. In your right view you’ll see our first link is 2 units long, but if we make our Segments length 2 units long the IK Chain will be longer since we don’t have our links spaced at every 2 units. We’ll have to make the Segments a bit shorter to get them closer to the size of our chain. Let’s use “1.6” for the Segments length.  And we should have something similar to the picture below.

Now we’re going to parent the links to the bones in the IK Chain using our top and right views. Click on the selection tool and select the first link in the top view, you’ll see a green border around it. Now hold down shift on the keyboard and click on the first bone, border will turn white. This tells us with have more than one object selected and we can parent it to another object. Go to the main menu under Control and choose Link. Now our chain link is parented to the bone and will move with it. Repeat this step using the right view for the next link and the next bone in the IK Chain and so on until you’ve parented all the links.

After you’ve finished, go to the AM and collapse the list for IK Chain Root to see all of it’s objects. Select “IK Handle 5” and in the right view click on the Move tool.  Move the IK Handle up and down to see if the links move with the bones. Don’t worry if it get’s all mangled, we just want to see if everything is moving.

Back in the AM in the IK Chain Root list click on “Return to Rest Orientations” and our Ikchain will go back to it’s normal position. Now we’re going to position our IK Chain to make it look like it’s hanging.  Under it’s transformation change the “x” Rotation to “90.0” and change the “y” Position to around “11.0”. Once it’s in position what we want to do is click on “Set Rest Orientations”. If we didn’t do this and clicked on “Return to Rest Orientations” it would move back to the position when we first created the Ikchain. Select “Ik Handle 5” again and try moving it around in the right view, it still doesn’t really look like a swinging chain. We’re going to fix that by going into the individual bone’s attributes and setting the rotation limits.

In the AM, under the “IK Chain Root” list you’ll see the “Bones” list. Collapse the first bone and you’ll see it’s attributes followed by “Children” which includes the next bone in the IKChain and the first chainLink object. Let’s start with the first Bone. We want the chain to swing pretty wide, but not go all the way around like it’s set right now. Change the “Min and Max Angle X” to “-50 and 50”. This will give us a good swing back and forth.  I wanted the chain to look like it was heavy, so for the rest of the bones I set their rotation to “-10 and 10” on the “Min and Max Angle X”. Now when we move “IK Handle 5” on the right view we get a much better swing.

Now that our chain is ready let’s get it animated. Normally we would just use keyframes to animate the motion, but we’re going to use scripting a little bit. This will give us more control over our motion. Start by adding a Null to the scene, on the main menu go to Special and select Null. We want the Null to control the movement of the Ikchain so we need to connect it in some way. Select “IK Handle 5” and on the main menu go to Control->Add Constraint and select “Object Snap”.  Once you select this you’ll be prompted to select the object to snap to, select the Null we just created. If you look in the AM under the “IK Handle 5” attributes, a new attribute has been added, “Snap to Object”.  Collapse this list to reveal it’s attributes. You’ll see it has the Null selected as it’s target and gives you the choice to choose a different object if needed. For now click on “Snap Position” to activate it.  Nothing seems to have changed, but if we select our Null and move it around in the right view you’ll see that our chain moves with it. You’ll notice if we click on “Return to Rest Orientations” the ikchain won’t reset. To remedy this, first move the Null back to it’s original position. We can do this by using the Move tool or in the AM and just put everything back to zero in the “Position” attributes. Now click on “Return to Rest Orientations” again and the ikchain will reset.

Ok, let’s get to the scripting part. In the AM, all the attributes have a small drop down arrow next to them. We use these to add and remove keyframes and expressions. Go to the Null and under Transformation click on the small arrow next to “Position” and select “Attach Expression”.

Once you do that, the Pixels text editor will open with a document that has some text in it already. This is where we’ll put in our script to animate. Click in the spot right above the first “setAttr”.  Input this line with out the quotes:

“set pos [expr sin($FRAME)];”

change the last “setAttr” from “setAttr -r $ATTR.z 0.0” to “setAttr -r $ATTR.z $pos”.

Save the document and close it and go back to Pixels. At first look it doesn’t seem like anything has changed. Click on the right view to activate it and then click play on the timeline. If everything went correctly you should have movement. The Null should be moving back and forth very rapidly. What’s happening is the “sin” function gives out a “-1 to 1”, mixed with $FRAME it causes the movement to occur, since we’re just telling to move every frame it moves very rapidly. Let’s edit our expression to change this, click on the down arrow next to “Position” and select “edit expression”.  Change the current expression to this:

“set pos [expr sin($FRAME / 2)];

Save and go back to Pixels and hit play again. By dividing the framerate we’ve slowed down the movement. Go ahead and edit the expression again, but this time put a higher number like 10 to see the difference. As you can see it’s slowed down to where we can get a better view of the motion, but it’s still only swinging between “-1 to 1”. Edit the expression again, this time input:

“set pos [expr sin($FRAME / 10) * 10];”

Save and go back to Pixels and hit play again. By multiplying 10 to the sin function we’re telling it to go up to that number.  In the AM under “Render Options” -> “Animation” set the End Frame to a higher number to play it a bit longer. Experiment with different numbers to make it go faster or slower or to make it swing wider.  And that about does it for creating our swinging chain.

Thanks for your time and I hope I explained everything clearly and was able to teach you just a little of what can be done with Pixels.

Rick Garza

Posted by filipe on 12/09 at 12:21 AM
(0) Comments • (0) TrackbacksPermalink

Sunday, November 26, 2006

mickeymousing in pixels:3d (I)

You can play aTempo‘s monphonic line (in standard midi file format) through any smf player into MacTermen and obtain portamento line that follows the animation.

MacTermen, a virtual Theremin

MacTermen Ensemble: Il vecchio castelo , Mussorgsky

Posted by filipe on 11/26 at 11:11 PM
(0) Comments • (0) TrackbacksPermalink

More gothic elements…

Posted by filipe on 11/26 at 11:08 PM
(0) CommentsPermalink
Page 1 of 8 pages  1 2 3 >  Last »