bluebird…

i wonder why screencaps are harder for me than coding and fixing 3d? anyways. I’m organizing the old bird rig into a screencap presentation. Publicizing works is quite important, as it keeps me more organized and on task. I’m still quite surprised why I made 60+ shelf scripts (mostly MEL) just for the BIRD! And a few aren’t just short tool scripts.
Hoping this video turns out well, I’ll do a first pass into revisiting just what this bird does….stay tuned

10/02/2009. Tags: . art, code. Leave a comment.

vineGrowth screencap


Screen capture of a few tools developed for past projects
It is similar to a previous maxscript I wrote for recursive plant growth. But since maya has paintfx, the recursive part and manual curve shape designs are not coded into the version for maya. However I added more flexibility with an easier UI.

Future work: more integration with Maya’s other modules besides paintFX.

10/02/2009. code. Leave a comment.

new website

It’s a simple site so the challenge is more SEO and publicity.
I kind of like the logo, but I’m not sure how graphics/iconish the page should get, or keep a simplistic style (some optics research company). The contact form works now.
Akaylight Corporation

09/18/2009. code. Leave a comment.

Animation Showcase & Finalizing…

We had our Tisch animation showcase 5/7. I’m quite impressed especially of the longer works. Andrew & Harry’s film worked out well–that painting and shading is awesome. Several friends back in intermediate animation finally ‘disclosed’ their films, and wow, gota see again Bethany’s vaccum dog PK and Connie’s flower seduction.

I really wanted to see SVA’s and other’s animation…happens to be during my finals and graduation (i did see Metrocaf at SVA) maybe next time.

So parts of my showcase is online, plus extras: Experimental animation. It’s mostly exploration into various animated media and computation from prof Rob Fergus’ expertise in image processing. I might explain some coding/procedure behind some works if it can make any sense to people. But the weird visuals come from permutations of {matlab, maya, flash, pencil, me}.

05/14/2009. Tags: , , , , , , , . art, code. Leave a comment.

Anim: Bunnies with Flash

Learning AS3 and how designing (mostly) perpetual animations from code:
Bunnies
It’s a bit psychedelic. I’m thinking of adding interactivity of some sorts, or making it more ‘practical’. Because now it’s mostly experimentation.

03/19/2009. Tags: , , , , , , . code. Leave a comment.

Tutorial: JW Player Embedded

See original tutorial  HERE.

JW Player Embedded

Question: How to embed JW Player in any Flash file?

Here’s all the necessary resources and more:

Basic embed Flash in html: http://www.longtailvideo.com/support/tutorials/Embedding-Flash
Embed JW Player in Flex: http://developer.longtailvideo.com/trac/wiki/FlexEmbedding
JW Player API: http://developer.longtailvideo.com/trac/wiki/FlashAPI
JW Player flashvars: http://developer.longtailvideo.com/trac/wiki/FlashVars
load external SWF in Flash stage: link
LONG forum posts: http://www.longtailvideo.com/support/forum/Setup-Problems/11830/Embeding-JW-player-4-0-in-a-flash-website-AS3-
more… http://www.longtailvideo.com/jw/?search=embed+flash

Thanks to some members in the longtail forum, I frankensteined a working presentation without being very familiar with AS3. See example here:
sample portfolio

JW specific imports, or you can import all JW stuff:

import com.jeroenwijering.events.*;
import com.jeroenwijering.player.*;
import com.jeroenwijering.plugins.*;
import com.jeroenwijering.utils.Configger;

Optional, store a URL string of the player with parameters, like size, autoplay etc.

To keep things simple, put all files (yes html, player files, host SWF, all videos) in the same directory. My version did organize elements into a nice folder hierarchy. Though since referencing parent folders (eg ../parent) doesn’t work perhaps due security or silly syntax, my videos folder is in the player folder. I dislike this hierarchy in terms of strict relations, but at least folders separate element types cleanly.

Link in the SWF JW player by the procedure in the above Adobe page, using a Loader object. Take care relative directories in the URL is relative to the html page caller, not the host SWF caller.

Note relationship: html page -> your custom SWF -> embedded (loaded) JW Player SWF

Then some good event handlers as the bulk of you customization:

function loaderHandler(e:Event) //SWF player loaded
function playerReady(e:Event=null) //initialized. Now use the API to send/receive
function resizePlayer(), buttons etc //the interactive UI bulk

Then much of the UI connections just take time. You can see I retained the standard JW skin. You can replace it, use all your own controls etc. All the controls still work, except fullscreen, which I need to somehow intercept and relay to a correct parent "window".

 

02/28/2009. code. 4 comments.

WordPress on WordPress

There quite some differences between the WordPress hosted version and blog installed on a private host.

I’m working on an installed WordPress, with lots more flexibility. But uploading has permission problems.

Now I can use the WordPress upload interface, and FTP uploaded files can only be linked by absolute URLs so it’s very cumbersome. I need to upload via FTP, but use short relative links to refer on posts/pages. That would be easier to organize and for future site migration.

Not the shortest, but I got a relative link to work. So allows at least migrating domain name, thanks to a Permalink plugin to change the link addresses.

Also, the wordpress.com version is especially slow (installed is no better, probably the similar WP interface always had speed issues). Maybe using a desktop blogger would help. If they made it all Ajax like Yahoo/Google, then it would be much faster

EDIT: got mass uploading to streamline. After trying several plugins, I decided to forget the WP upload UI entirely. Some plugins did nicely in attempting to organize uploads/folders, but they’re dragged down by some WP UI simplicity/slowness. So in a recent gig where I was asked to place many files in organized folders/categories, I FTPed directly, and used relative links in the WP page posts. This allows a bit more flexibility in future migration. And the folder plugins would place files in the same compatible locations as the manual FTPs. Only difference is the former has a WP database record (which is not useful yet). All the file links work on the pages/posts, so WP installed does have more flexibility it seems.

Also for the default Flash uploader, Firefox is nonfunctional, while Explorer uploads quickly. I find that weird because Flash is the same plugin from Adobe…hmm….

02/16/2009. code. Leave a comment.

mocap

only a few days… and the CS showcase comes. I heard some “important people” are coming to visit.

really late crunch time, but an overview…
platforms used:
opencv in c/c++, virtools or motionbuilder, vicon RT plugin, server/client codes, visual tracker (c++), motion recognition (matlab)

somehow all these need to be connected, in realtime. surely it’s doable!
I got matlab c++ connected via TCP. Lol it’s a little late first time implementing all that IPC stuff. Still need to integrate the actual opencv codes to be useful.

In matlab, I’m testing with 6 shapes, and a user draws some shape for the code to recognize. It’s a closest match, categorization, clustering, regression sort of problem. It’s fairly accurate with good distortions, but overly wacky drawings shouldn’t have a match at all. Once that’s done, the real problem would be curve fitting, which would increase runtime alot.

12/07/2008. Tags: , , . code. Leave a comment.

Knee pop… damper on n stretchy joints

(notes too long, attempt at coherence…)

Placing the knee damper into Andrew’s rig is a challenge. It has multiple bone scale controls, and a double knee joints setup.
The original script should work with controlled scaling, but I need to see where to insert the script so there won’t be unstable (cycling or conflicting) scale operations.

Investigate leg rig:
Stretchy_Limbs expression scales bones to reach overextended IK controllers.
This effect can be on/off.
Distance node (R_hip, R_anke) shows right leg longer than left.
The constant value 36.700 in DivScaleLimbs is the total length of all leg bones, confirmed by checking the thigh+shin+small_knee to be 36.7031111. So stretching should only occur when all knee angles are pi.

Full rig scale also affects the distance node. I suppose it corrects it for global scale difference. I’ll ignore this for now.
Fixed: frames where the controller’s exactly at full exstension, remains a scale=1.0.

/*expression error example
An expression linked channel is purple only when the expression has a direct assignment of form “obj.attr=value”. setAttr will not create expression link.
Linked channels update correctly up to 1 nesting (ie assignment is in a top scope like if, for clauses). 2 or more scope nesting may produce unstable results (eg if{ if{} }). One situation will have about 3 separate answers per frame depending on timescolling, step forward to frame, step backward to frame, & jump to frame.
Any non expression commands (like tag based, eval “ etc) makes the link unstable.
*/
if(joint25.rotateX<1){
if(time>1){
joint26.scaleX=2;
joint25.scaleX=2;
}
else{
joint26.scaleX=time*2;
joint25.scaleX=time*2;
}
}

Answer: I think this is undocumented in mayadocs? So I can destroy all expression links and make them purely “script-like”. Or limit the scope nesting. Placing non exp commands into a separate function gave the same unstable results. Not all the knee pop commands can convert to exp friendly, so I need to “scriptify” the whole expression.
Now it is STABLE! Damping works.

However, damper works under a particular scope of the scaling expressions, so when the leg transitions out of the damper scope, it is NOT smooth. Due to the leg still bent, so damper needs to stay active until knee is completely straight.
This also means both stretching needs a specific threshold length, and the damper needs to use a particular distance measure. It’s trivial and working when a leg has 2 bones, but a double knee changes distance assumptions.

Generalizations: IK chain, a start and end bone, n bones in between approximate an arc. OR, majority of leg length is start/end bones, and n very small bones in btw approximate 1 knee joint.

Error: bad approximation where answer either doesn’t converge, or converging from the wrong side of a limit.
Error 1: Theta extracts an offcenter angle, so:
smaller theta (than true knee theta) => smaller x2
Fix: No need for virtual tri. Just angle of the virtual knee.

Error 2: smaller leg length => smaller x2
Fix: need to assume thigh, shin form equilateral triangle. Obtuse triangles (with partially unknown lengths) require more calculation.

(…blah blah TMI…assume full equilateral symmetry…)

Ratio: 0.963 //using $lThigh as triangle side
Ratio is constant when correcting (using original theta1), suggests equation is correct to a constant error.
Ratio: 1.041 //using $lShin as triangle side
Thigh and shin lengths different: 17.22805234, 18.66578588
Use avg length helps approx.
Ratio: 1.0 //WOW! Equations exactly match => approximation correctness.

Once theta2, the corrective angle, is applied, it all works smoothly. WOOT!!!

Video of leg:
stretch: original stretchy to reach overextended IK control
damp: this script
damp+stretch: the 2 working happily

video link

11/21/2008. Tags: , , , , , , , , , , , , , , , , . code. Leave a comment.

Reviews: AENY, Autodesk demo

wow, hard to find time to write up these events I went to… Went to some showcases of new/up-coming software.

AENY: Aftereffects group in NY showed AE CS4.

So basing off of presentation only, my thoughts on the features…

Mostly it’s the bridge improvements btw the Adobe products, autoupdate btw softwares without exporting/converting/rendering. So I’m glad AE is super close to PremierePro now. Flash came from a different company’s code, but they managed to have an export function from AE to Flash (CS4?). The amazing part is all animated elements are separate and layered in Flash, and when he scroll the timeline — all animation clips actually played!!! Amazing!! In my Flash (CS1 or 2?), I can’t see anything on any clip/object/group except the first frame, it was the most retarded issue I found that made Flash not fitting for character/scene animation. It’s still far away from ‘real’ 2D animation programs (and lightyears away from anim apps from Japan…).

I only recall 2 new filters he demoed. Talking about cartoon, there’s a toon filter, complete with ink and paint. The Ink looks quite cool, some tapered lines, naturally broken, very (I mean VERY) consistent across frames (from a live action noir film). Paint has the usual simplified grades of shades.

Bilateral blur? He could selectively blur an image based on detail, so areas of low detail/light becomes more blurred, retaining the sharpness of “important” features. It looked like a simple set of Matlab instructions, just take a mask from a high pass filter, then convolve blur based on this selective mask.

Speech recognition into words I’m not too interested. It’s just a convenience by dragging in a research paper (well, implementing well is another art). You can drag the text to the timeline, and markers will show where each word is spoken. This is handy especially with the now ubiquitous search tool (search any project files, layer properties, filters etc).

AE also added a 2.5D plane based motion tracker, Mocca? It’s standalone, but exports quickly to AE. It’s $300 on its own, but let’s see if this removes tracking headaches?

Autodesk demo: last week? It was kinda small and unorganized (let’s hope the 3December event on 12/2 would be much better).

Motionbuilder 2009: Mostly general base structure things, like good hardware shaders in view. The Python is improved? If it’s similar to Maya’s then I might try it. Long over due: 64bit and Vista OS’s support (when Win7 is almost here to save the day?). Other Autodesk software have worked on these platforms long ago. This $4k mass is a bit slow to move, but it’s good. The new dynamics looks like a port of Maya’s realtime dynamics (ages ago), and 3dsmax’s ragdoll simulation (four versions ago).

Edit: must’ve forgotten this cool thing. mb’s FBX format can be viewed in quicktime standalone, great for presentations. If it works with any browser without plugin download, then this can be the winner to the decade old web 3d problem. Currently most web 3d either requires a plugin download (viewpoint), uses java applet (like my 3d projects for Ken Perlin), or a custom server backend streaming to client flash page (also no installation, like sosauce and most web companies).

Mudbox 2009: Essentially many photoshop brushes in 3D. Also hw shaders, which when applied does look amazing, realtime lighting, nice shadow, bake in ambient occlusion, all in high poly count. They mentioned the workflow can subdivide up up 45mil polys. Nice. Clean interface. But I wonder if it can compete with ZBrush?

Maya 2009: Lots of focus on workflow efficiency. So most enhancements already had well established scripts online (like interparticle collision or proxy).

Soft mod is also placed as a type of (soft) selection, exactly the same as what 3dsmax users are used to. This makes it much faster for modeling, instead of deformer setups, then delete history…repeat…. The presenter didn’t show the muscle feature (from 2008 paid ext2), like to see how stable it is. nParticles looks awesome, lots of sticky, waterish possibilities–dripping sweat along UV coords used to be a common mel headache for many of us, but now it’s built in…drip, stick, flow, linger, accumulate, drip~0~0~O. A grid of particles can act like cloth sim, so it seems to replace classic particles’ ability for softbodies. On a dual core laptop, it’s realtime playback is actually fast enough, where he could interactively move a bowl and splash water around (one of the main concerns, cuz default ncloth is awefull slowwww!!), I’m assuming the 8GB ram didn’t play a roll! I doubt any script could achieve this speed, maybe a proprietary C plugin. However I’d like to see exactly how parameters are layed out and controlled, if scripts really become unnecessary. I see those ramps typically in shaders/paintfx appear in the UI, to control speed, stickiness etc, but if harry rotations, material assignments, and event triggers are streamlined, that’ll be awesome. Btw, nparticles can be converted to polygons (waay overdue), so no more buggy script converters.

UV editor and render passes both are streamlined very well, interactive uv relaxing, less trial/error, more tweaking using sliders. Massive render passes is easier to manage/create, and mentalray seems to optimize pass rendering per frame, so instead of 21 separate renders (in 2008) per frame, mentalray renders once, and all those passes layer up. Subjectively it looks like 5-10x faster (i duno cuz he didn’t compare the rendering in 2008).

Stereo 3D camera, with several viewport styles, like the classy red/green images. Probably made for Dreamworks folks, and others. Hope to see yall in trendy cardboard red and green sunglasses!

Animation layers. I think it’s very cool, mainly easy to use. But most people probably are used to layering animation using trax editor character clips, multiple weighted constraints, deformers, parent/groups (old school but tried and true). The layers of keys are additive and can have weights (same as trax right?), but they actually are color coded, awesome! See blocking keys in color x, emotions in y, details in z etc. Dreamworks a long time ago (4 yrs?) had a script to color code keys in the timeline into keyframes and breakdown/inbetweens.

11/21/2008. Tags: , , , , . code. Leave a comment.

Next Page »