<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3897053759909235984</id><updated>2011-09-22T10:52:33.091+10:00</updated><category term='Maya Tutorials'/><category term='Maya Plugins'/><category term='Publications'/><category term='VFX Work'/><category term='Thesis'/><title type='text'>Carsten Kolve's Blogschmog</title><subtitle type='html'>a place to showcase my professional work in vfx, post tutorials, share cg software and impress you with my cooking skills</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kolve.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://kolve.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Carsten Kolve</name><uri>http://www.blogger.com/profile/05136878708199088359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp0.blogger.com/_CXn820jLK7U/R-fTIZveasI/AAAAAAAAC0s/YgmJsB_n5DQ/S220/IMG_9293.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3897053759909235984.post-6490459988483164767</id><published>2009-11-21T00:36:00.000+11:00</published><updated>2010-01-21T00:54:36.348+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Publications'/><title type='text'>Australia, Siggraph One Sheet</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_CXn820jLK7U/S1cI63SBWHI/AAAAAAAALAU/gbEbDaGwftM/s1600-h/S2009_logo_clr_left.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 103px;" src="http://2.bp.blogspot.com/_CXn820jLK7U/S1cI63SBWHI/AAAAAAAALAU/gbEbDaGwftM/s320/S2009_logo_clr_left.jpg" alt="" id="BLOGGER_PHOTO_ID_5428817683183392882" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here the one sheet for the presentation &lt;a href="http://www.pawfal.org/dan/"&gt;Dan Bethell&lt;/a&gt; and I held at Siggraph 2009 in New Orleans: "&lt;a href="http://www.kolve.com/downloads/VenomousCattleForAustralia_Siggraph09.pdf"&gt;Venomous Cattle For &lt;span style="font-style: italic;"&gt;Australia&lt;/span&gt;&lt;/a&gt;".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3897053759909235984-6490459988483164767?l=kolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kolve.blogspot.com/feeds/6490459988483164767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3897053759909235984&amp;postID=6490459988483164767' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/6490459988483164767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/6490459988483164767'/><link rel='alternate' type='text/html' href='http://kolve.blogspot.com/2009/11/australia-siggraph-one-sheet.html' title='Australia, Siggraph One Sheet'/><author><name>Carsten Kolve</name><uri>http://www.blogger.com/profile/05136878708199088359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp0.blogger.com/_CXn820jLK7U/R-fTIZveasI/AAAAAAAAC0s/YgmJsB_n5DQ/S220/IMG_9293.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_CXn820jLK7U/S1cI63SBWHI/AAAAAAAALAU/gbEbDaGwftM/s72-c/S2009_logo_clr_left.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3897053759909235984.post-2499616039796619101</id><published>2009-03-07T10:59:00.022+11:00</published><updated>2009-05-22T10:46:49.513+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VFX Work'/><title type='text'>Australia, Baz Luhrmann, 2008</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_CXn820jLK7U/ShXryuGUXwI/AAAAAAAAHfo/SmdA_VG8nTc/s1600-h/australia-poster.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 267px; height: 200px;" src="http://2.bp.blogspot.com/_CXn820jLK7U/ShXryuGUXwI/AAAAAAAAHfo/SmdA_VG8nTc/s320/australia-poster.jpg" alt="" id="BLOGGER_PHOTO_ID_5338432189918109442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lots to learn on the Australian outback epic. Doing a texture and animation reference shoot together with the guys from Animal Logic and a herd of very live and not always cooperative cows. Then some on-set survey and data aquisition work and experiencing first hand why it often makes sense to do stuff during shooting that you know won´t make post production easier.&lt;br /&gt;And, of course, post production itself: My first gig as CG Supervisor included overseeing the development of RSP's inhouse crowd system "posse". It turned out nicely and will be a pretty flexible platform for all kinds of related and different work - hope to present some of the cool stuff you can do with it in the future. The majority of the cattle extension shots were done with it (not the stampede, though - that's Framestore). Shot bidding, coordinating work with 3rd party vendors, overseeing 2.5d set extension work in Nuke, deciding on technical approaches etc. and all the time keeping an eye on disk space and render farm usage. - Fun!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_CXn820jLK7U/ShX1N6PYX8I/AAAAAAAAHf4/7V_xVOxYkS4/s1600-h/australia01-Australia-RisingSun-td-0190a.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 136px;" src="http://3.bp.blogspot.com/_CXn820jLK7U/ShX1N6PYX8I/AAAAAAAAHf4/7V_xVOxYkS4/s320/australia01-Australia-RisingSun-td-0190a.jpg" alt="" id="BLOGGER_PHOTO_ID_5338442552638463938" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_CXn820jLK7U/ShX1N5MlsoI/AAAAAAAAHgA/13A3NuxwvQk/s1600-h/australia01-Australia-RisingSun-td-0190b.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 136px;" src="http://4.bp.blogspot.com/_CXn820jLK7U/ShX1N5MlsoI/AAAAAAAAHgA/13A3NuxwvQk/s320/australia01-Australia-RisingSun-td-0190b.jpg" alt="" id="BLOGGER_PHOTO_ID_5338442552358318722" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;More info here: &lt;a href="http://vfxworld.com/?atype=articles&amp;amp;id=3842"&gt;VFX World&lt;/a&gt;&lt;br /&gt;Cattle extension and environment shot breakdowns: &lt;a href="http://www.rsp.com.au/portfolio/australia.htm"&gt;RSP&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3897053759909235984-2499616039796619101?l=kolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kolve.blogspot.com/feeds/2499616039796619101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3897053759909235984&amp;postID=2499616039796619101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/2499616039796619101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/2499616039796619101'/><link rel='alternate' type='text/html' href='http://kolve.blogspot.com/2009/03/australia-baz-luhrmann-2008.html' title='Australia, Baz Luhrmann, 2008'/><author><name>Carsten Kolve</name><uri>http://www.blogger.com/profile/05136878708199088359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp0.blogger.com/_CXn820jLK7U/R-fTIZveasI/AAAAAAAAC0s/YgmJsB_n5DQ/S220/IMG_9293.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_CXn820jLK7U/ShXryuGUXwI/AAAAAAAAHfo/SmdA_VG8nTc/s72-c/australia-poster.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3897053759909235984.post-8993751444245207034</id><published>2009-03-02T10:58:00.005+11:00</published><updated>2009-05-22T11:19:18.512+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VFX Work'/><title type='text'>The Spirit, Frank Miller, 2008</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_CXn820jLK7U/ShXpJSp9kPI/AAAAAAAAHfg/kaIbm3Jun7o/s1600-h/the_spirit_poster2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 160px;" src="http://2.bp.blogspot.com/_CXn820jLK7U/ShXpJSp9kPI/AAAAAAAAHfg/kaIbm3Jun7o/s320/the_spirit_poster2.jpg" alt="" id="BLOGGER_PHOTO_ID_5338429279153524978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;My second job as CG Supervisor (running in parallel with work on &lt;span style="font-style: italic;"&gt;Australia&lt;/span&gt;) involved, apart from the usual general production pipeline work, making sure we could deliver a bunch of full cg city shots as well as a whole set of digital set extensions.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;Unusual for a VFX production was the amount of creative freedom - allowing us to develop stylized looks for the scenes. One sequence involved splashing lots of cg blood around in a Japanese tea room - while not shown in this form in cinemas, it might make it onto an unrated DVD.&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_CXn820jLK7U/ShX8bh5mHbI/AAAAAAAAHgI/uzqoaN52vUY/s1600-h/spirita.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 180px;" src="http://4.bp.blogspot.com/_CXn820jLK7U/ShX8bh5mHbI/AAAAAAAAHgI/uzqoaN52vUY/s320/spirita.jpg" alt="" id="BLOGGER_PHOTO_ID_5338450483204201906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lot's of info here: &lt;a href="http://features.cgsociety.org/story_custom.php?story_id=4843"&gt;CG Society&lt;/a&gt;, &lt;a href="http://vfxworld.com/?atype=articles&amp;amp;id=3863&amp;amp;page=1"&gt;VFX World&lt;/a&gt;&lt;br /&gt;Shot Breakdown: &lt;a href="http://www.rsp.com.au/portfolio/flv/spiritFlv.htm"&gt;RSP&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3897053759909235984-8993751444245207034?l=kolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kolve.blogspot.com/feeds/8993751444245207034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3897053759909235984&amp;postID=8993751444245207034' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/8993751444245207034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/8993751444245207034'/><link rel='alternate' type='text/html' href='http://kolve.blogspot.com/2009/03/spirit-frank-miller-2008.html' title='The Spirit, Frank Miller, 2008'/><author><name>Carsten Kolve</name><uri>http://www.blogger.com/profile/05136878708199088359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp0.blogger.com/_CXn820jLK7U/R-fTIZveasI/AAAAAAAAC0s/YgmJsB_n5DQ/S220/IMG_9293.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_CXn820jLK7U/ShXpJSp9kPI/AAAAAAAAHfg/kaIbm3Jun7o/s72-c/the_spirit_poster2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3897053759909235984.post-3362222121481079514</id><published>2008-11-03T10:59:00.000+11:00</published><updated>2009-04-01T20:01:40.794+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Publications'/><title type='text'>The Ruins, Siggraph One Sheet</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_CXn820jLK7U/SdMSGpW7iqI/AAAAAAAAHeo/R94zFKBJvFo/s1600-h/s2008.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 120px; height: 84px;" src="http://3.bp.blogspot.com/_CXn820jLK7U/SdMSGpW7iqI/AAAAAAAAHeo/R94zFKBJvFo/s320/s2008.jpg" alt="" id="BLOGGER_PHOTO_ID_5319615490245233314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For everyone who would like to have a peek at the one-sheet for my &lt;a href="http://www.siggraph.org/s2008/attendees/program/item/?type=talk&amp;amp;id=117"&gt;Siggraph 2008&lt;/a&gt; talk during the "Rigging outside the Box" session, here is the link to the pdf &lt;a href="http://www.kolve.com/downloads/LargeScaleFoliageAnimationForTheRuins.pdf"&gt;"Large Scale Foliage Animation for &lt;span style="font-style: italic;"&gt;The Ruins&lt;/span&gt;"&lt;/a&gt;. There is more material available for everyone with an &lt;a href="http://portal.acm.org/citation.cfm?id=1401103"&gt;ACM&lt;/a&gt; account.&lt;br /&gt;&lt;br /&gt;It details the same system I presented at the Digital Media Festival 2008 in Sydney.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3897053759909235984-3362222121481079514?l=kolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kolve.blogspot.com/feeds/3362222121481079514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3897053759909235984&amp;postID=3362222121481079514' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/3362222121481079514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/3362222121481079514'/><link rel='alternate' type='text/html' href='http://kolve.blogspot.com/2008/03/ruins-siggraph-one-sheet.html' title='The Ruins, Siggraph One Sheet'/><author><name>Carsten Kolve</name><uri>http://www.blogger.com/profile/05136878708199088359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp0.blogger.com/_CXn820jLK7U/R-fTIZveasI/AAAAAAAAC0s/YgmJsB_n5DQ/S220/IMG_9293.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_CXn820jLK7U/SdMSGpW7iqI/AAAAAAAAHeo/R94zFKBJvFo/s72-c/s2008.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3897053759909235984.post-6918238458664558170</id><published>2008-04-18T04:24:00.000+10:00</published><updated>2008-04-21T19:18:00.849+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VFX Work'/><title type='text'>The Ruins, Carter Smith, 2008</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_CXn820jLK7U/R-VA-pveaiI/AAAAAAAACyA/HVprmYNbC1Y/s1600-h/ruins.jpg"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_CXn820jLK7U/R-VA-pveaiI/AAAAAAAACyA/HVprmYNbC1Y/s320/ruins.jpg" alt="" id="BLOGGER_PHOTO_ID_5180618391460669986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Carnivorous vines with an appetite for fit teenagers are the main cg character in Dreamworks' horror movie 'The Ruins'. I worked as an R&amp;amp;D TD creating solutions for the animation pipeline. These included a new maya shape implementing &lt;a href="http://en.wikipedia.org/wiki/Kochanek%E2%80%93Bartels_spline"&gt;Kochanek-Bartels&lt;/a&gt; splines used for controlling the vines and implementing parts of the layer based animation system for leaves (allowing you to combine different kinds of procedural animation with hand animation).  &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_CXn820jLK7U/SAxaqn0sy0I/AAAAAAAAC4U/y813B54TnY8/s1600-h/ruins1.jpg"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_CXn820jLK7U/SAxaqn0sy0I/AAAAAAAAC4U/y813B54TnY8/s320/ruins1.jpg" alt="" id="BLOGGER_PHOTO_ID_5191624158742367042" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_CXn820jLK7U/SAxaq30sy1I/AAAAAAAAC4c/gD9_ggNDneQ/s1600-h/ruins2.jpg"&gt;   &lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_CXn820jLK7U/SAxaq30sy1I/AAAAAAAAC4c/gD9_ggNDneQ/s1600-h/ruins2.jpg"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_CXn820jLK7U/SAxaq30sy1I/AAAAAAAAC4c/gD9_ggNDneQ/s320/ruins2.jpg" alt="" id="BLOGGER_PHOTO_ID_5191624163037334354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A system I designed to integrate Maya nCloth into the skeletal animation workflow allowed artists to resolve leaf on leaf and leaf on ground collisions. Other tasks included procedural rig building as well as integrating the animation layer system with a separate solution for massive amounts of background leaves.&lt;br /&gt;&lt;br /&gt;There is an in-depth articles here: &lt;a href="http://www.vfxworld.com/?atype=articles&amp;amp;format=rss&amp;amp;id=3599"&gt;VFX World&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3897053759909235984-6918238458664558170?l=kolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kolve.blogspot.com/feeds/6918238458664558170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3897053759909235984&amp;postID=6918238458664558170' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/6918238458664558170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/6918238458664558170'/><link rel='alternate' type='text/html' href='http://kolve.blogspot.com/2008/04/ruins-carter-smith-2008.html' title='The Ruins, Carter Smith, 2008'/><author><name>Carsten Kolve</name><uri>http://www.blogger.com/profile/05136878708199088359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp0.blogger.com/_CXn820jLK7U/R-fTIZveasI/AAAAAAAAC0s/YgmJsB_n5DQ/S220/IMG_9293.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_CXn820jLK7U/R-VA-pveaiI/AAAAAAAACyA/HVprmYNbC1Y/s72-c/ruins.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3897053759909235984.post-3897580302232574034</id><published>2008-03-24T05:02:00.000+11:00</published><updated>2008-03-24T05:17:41.701+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Publications'/><title type='text'>Special Effects: The History and Technique</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_CXn820jLK7U/R-abnpveajI/AAAAAAAACzA/_2_Njsloo-o/s1600-h/special.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5180999526858517042" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_CXn820jLK7U/R-abnpveajI/AAAAAAAACzA/_2_Njsloo-o/s320/special.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;You can now find a small interview with me on crowd simulation in the second edition of Richard Rickitt's excellent book &lt;a href="http://www.amazon.co.uk/Special-Effects-Technique-Richard-Rickitt/dp/1845131304/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1206295217&amp;amp;sr=8-1"&gt;Special Effects: The History and Technique&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3897053759909235984-3897580302232574034?l=kolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kolve.blogspot.com/feeds/3897580302232574034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3897053759909235984&amp;postID=3897580302232574034' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/3897580302232574034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/3897580302232574034'/><link rel='alternate' type='text/html' href='http://kolve.blogspot.com/2008/03/special-effects-history-and-technique.html' title='Special Effects: The History and Technique'/><author><name>Carsten Kolve</name><uri>http://www.blogger.com/profile/05136878708199088359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp0.blogger.com/_CXn820jLK7U/R-fTIZveasI/AAAAAAAAC0s/YgmJsB_n5DQ/S220/IMG_9293.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_CXn820jLK7U/R-abnpveajI/AAAAAAAACzA/_2_Njsloo-o/s72-c/special.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3897053759909235984.post-7262289014169588478</id><published>2008-03-23T04:10:00.004+11:00</published><updated>2008-03-25T22:07:55.125+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VFX Work'/><title type='text'>10.000 BC, Roland Emmerich, 2008</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_CXn820jLK7U/R-VAtpveahI/AAAAAAAACx4/4HHGTM2SlhY/s1600-h/10kbc.jpg"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_CXn820jLK7U/R-VAtpveahI/AAAAAAAACx4/4HHGTM2SlhY/s320/10kbc.jpg" alt="" id="BLOGGER_PHOTO_ID_5180618099402893842" border="0" /&gt;&lt;/a&gt;&lt;div style="text-align: justify;"&gt;When MPC started pitching for work on 10.000 BC, I was asked to start the development of a long-hair and fur pipeline named "Furtility". I worked on the software design of the system, developed a prototype and implemented hair dynamics solutions using the testcase of a charging mammoth.&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_CXn820jLK7U/R-e4vpvealI/AAAAAAAACzs/u1jPgoi6JpM/s1600-h/10000mam2.jpg"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_CXn820jLK7U/R-e4vpvealI/AAAAAAAACzs/u1jPgoi6JpM/s320/10000mam2.jpg" alt="" id="BLOGGER_PHOTO_ID_5181313025111386706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;As I moved to Australia I didn't stay on after pre-production, but the R&amp;amp;D guys and TDs at MPC did an amazing job completing the work!&lt;br /&gt;&lt;br /&gt;There are nice articles about the production: &lt;a href="http://www.fxguide.com/article469.html"&gt;FX Guide&lt;/a&gt;, &lt;a href="http://features.cgsociety.org/story_custom.php?story_id=4459"&gt;CG Society&lt;/a&gt; and &lt;a href="http://www.vfxworld.com/?atype=articles&amp;amp;id=3572&amp;amp;page=3"&gt;VFX World&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3897053759909235984-7262289014169588478?l=kolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kolve.blogspot.com/feeds/7262289014169588478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3897053759909235984&amp;postID=7262289014169588478' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/7262289014169588478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/7262289014169588478'/><link rel='alternate' type='text/html' href='http://kolve.blogspot.com/2008/03/10000-bc-roland-emmerich-2008.html' title='10.000 BC, Roland Emmerich, 2008'/><author><name>Carsten Kolve</name><uri>http://www.blogger.com/profile/05136878708199088359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp0.blogger.com/_CXn820jLK7U/R-fTIZveasI/AAAAAAAAC0s/YgmJsB_n5DQ/S220/IMG_9293.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_CXn820jLK7U/R-VAtpveahI/AAAAAAAACx4/4HHGTM2SlhY/s72-c/10kbc.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3897053759909235984.post-2486140779514613654</id><published>2008-03-23T04:08:00.005+11:00</published><updated>2009-04-01T20:11:17.061+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VFX Work'/><title type='text'>Harry Potter and the Order of the Phoenix, David Yates, 2007</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_CXn820jLK7U/R-U9UZveagI/AAAAAAAACxw/ZUQ0NyOz3Z4/s1600-h/potter.jpg"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_CXn820jLK7U/R-U9UZveagI/AAAAAAAACxw/ZUQ0NyOz3Z4/s320/potter.jpg" alt="" id="BLOGGER_PHOTO_ID_5180614367076313602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;For Harry Potter and the Order of the Phoenix (Warner Bros) Rising Sun Pictures created the outside of Nr 12 Grimmauld Place, various set extensions, a cg owl and magic sparklers. I initially worked on the transforming facade for Grimmauld Place and developed different ways to procedurally animate bricks and reveal features of the house like windows and balconies. However the overall fx design changed during production and I focused instead  on the creation of a magic sparkling toy.&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_CXn820jLK7U/SAhxoHPiqJI/AAAAAAAAC3k/qzn0Vcf1wRg/s1600-h/hp5_1.jpg"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_CXn820jLK7U/SAhxoHPiqJI/AAAAAAAAC3k/qzn0Vcf1wRg/s400/hp5_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5190523504497436818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;For the first time I used Houdini in shot production. The base of the sparkler was formed by a custom otl for instancing tube primitives controlled in shape and motion by various levels of noise and randomness as well as the velocity of the ball. The resulting sparkles were combined with each other to achieve the characteristic bifurcations.  Sparkles were also instanced onto particles for the dynamic behaviour. The look of the sparkler was established in Shake using a variety of passes rendered in Mantra - the most useful of these were id, age, velocity and uv.&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_CXn820jLK7U/SAhxonPiqKI/AAAAAAAAC3s/lwm4L-mYI4A/s1600-h/hp5_2.jpg"&gt; &lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_CXn820jLK7U/SAhxo3PiqLI/AAAAAAAAC30/UWQqit2byho/s1600-h/hp5_3.jpg"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_CXn820jLK7U/SAhxo3PiqLI/AAAAAAAAC30/UWQqit2byho/s400/hp5_3.jpg" alt="" id="BLOGGER_PHOTO_ID_5190523517382338738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;More about the HP5 production here: &lt;a href="http://features.cgsociety.org/story_custom.php?story_id=4225&amp;amp;page=1"&gt;CG Cociety&lt;/a&gt;, &lt;a href="http://www.fxguide.com/article444.html"&gt;FX Guide&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Update! SideFx software has chosen to feature the shots in their &lt;a href="http://www.sidefx.com/index.php"&gt;2008 Houdini reel&lt;/a&gt;.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_CXn820jLK7U/SAhxonPiqKI/AAAAAAAAC3s/lwm4L-mYI4A/s1600-h/hp5_2.jpg"&gt; &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3897053759909235984-2486140779514613654?l=kolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kolve.blogspot.com/feeds/2486140779514613654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3897053759909235984&amp;postID=2486140779514613654' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/2486140779514613654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/2486140779514613654'/><link rel='alternate' type='text/html' href='http://kolve.blogspot.com/2008/03/harry-potter-and-order-of-phoenix-david.html' title='Harry Potter and the Order of the Phoenix, David Yates, 2007'/><author><name>Carsten Kolve</name><uri>http://www.blogger.com/profile/05136878708199088359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp0.blogger.com/_CXn820jLK7U/R-fTIZveasI/AAAAAAAAC0s/YgmJsB_n5DQ/S220/IMG_9293.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_CXn820jLK7U/R-U9UZveagI/AAAAAAAACxw/ZUQ0NyOz3Z4/s72-c/potter.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3897053759909235984.post-4789910280571660179</id><published>2007-03-26T05:24:00.000+10:00</published><updated>2008-04-21T19:45:50.383+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maya Plugins'/><title type='text'>Melfunctions</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;About&lt;/span&gt;&lt;br /&gt;mal.. mael... -wait- melfunctions is a plugin for Alias Maya that gives you access to many new mel command functions most of which are only very hard to replicate purely in MEL.  A lot of the commands are actually convenient wrapper around functionality that is already in the Maya API and melfunctions gives the script writer access to this hidden power formerly only available to C++ developers. &lt;br /&gt;&lt;/div&gt;&lt;p style="text-align: justify;"&gt;       Hopefully it will make it easier and faster to create more advanced solutions using Maya’s embedded scripting language.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Features&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;common matrix, vector and double math functions (all available on an array basis, too)&lt;/li&gt;&lt;li&gt;animation curve and shader sampling&lt;/li&gt;&lt;li&gt;mesh and instancer queries&lt;/li&gt;&lt;li&gt;plus lots more&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Documentation&lt;/span&gt;&lt;span class="heading2"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;I tried to document the commands properly but have assumed basic scripting and cg related mathematics knowledge - don't be surprised if the documentation is a little short on examples and explanations!       &lt;/div&gt;&lt;p class="body"&gt;Please read the &lt;a href="http://www.kolve.com/mp_melfunctions/docs/index.html" target="_blank"&gt;documentation&lt;/a&gt; &lt;/p&gt;&lt;span style="font-weight: bold;"&gt;Download&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;check out the most recent version of the &lt;a href="http://code.google.com/p/melfunctions/"&gt;source code&lt;/a&gt; from google code&lt;/li&gt;&lt;li&gt;there is also a compile (but most likely older) &lt;a href="http://www.highend3d.com/maya/downloads/plugins/utility_external/misc/melfunctions-3968.html"&gt;version available&lt;/a&gt; on highend 3d&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3897053759909235984-4789910280571660179?l=kolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kolve.blogspot.com/feeds/4789910280571660179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3897053759909235984&amp;postID=4789910280571660179' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/4789910280571660179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/4789910280571660179'/><link rel='alternate' type='text/html' href='http://kolve.blogspot.com/2007/03/melfunctions.html' title='Melfunctions'/><author><name>Carsten Kolve</name><uri>http://www.blogger.com/profile/05136878708199088359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp0.blogger.com/_CXn820jLK7U/R-fTIZveasI/AAAAAAAAC0s/YgmJsB_n5DQ/S220/IMG_9293.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3897053759909235984.post-3432266235405907044</id><published>2007-02-10T04:07:00.001+11:00</published><updated>2008-03-25T21:55:56.579+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VFX Work'/><title type='text'>The Last Mimzy, Robert Shaye, 2007</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_CXn820jLK7U/R-U8-pveafI/AAAAAAAACxo/p-U_MnooOR8/s1600-h/mimzy.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5180613993414158834" style="cursor: pointer;" alt="" src="http://bp3.blogger.com/_CXn820jLK7U/R-U8-pveafI/AAAAAAAACxo/p-U_MnooOR8/s320/mimzy.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;A fun little project to work on! No massive pre-production and R&amp;amp;D phase here, just go in and do some cool shots. RSP was asked to create cg spiders in virtual nets - which I had the pleasure to model, animate and shade.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_CXn820jLK7U/R-jZvJvea3I/AAAAAAAAC2E/lSKeMc1ObIU/s1600-h/mimzy02.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_CXn820jLK7U/R-jZvJvea3I/AAAAAAAAC2E/lSKeMc1ObIU/s400/mimzy02.jpg" alt="" id="BLOGGER_PHOTO_ID_5181630775381879666" border="0" /&gt;   &lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_CXn820jLK7U/R-jZvpvea4I/AAAAAAAAC2M/16mxM0Jv1SA/s1600-h/mimzy03.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_CXn820jLK7U/R-jZvpvea4I/AAAAAAAAC2M/16mxM0Jv1SA/s400/mimzy03.jpg" alt="" id="BLOGGER_PHOTO_ID_5181630783971814274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A spider net would be modelled as a poly mesh, and a little script would convert the edges of the mesh into dynamic Maya hair curves.  End points of the hair curves were constrained to the original mesh vertices. This setup allows you to add some fake wind deformation via a noise based deformer to the mesh and then curves would deform dynamicly in a secondary pass. Curves were rendered in 3delight using an improved Charlotte's Web shader.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_CXn820jLK7U/R-jZv5vea5I/AAAAAAAAC2U/jnbOqBK3xKM/s1600-h/mimzy04.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_CXn820jLK7U/R-jZv5vea5I/AAAAAAAAC2U/jnbOqBK3xKM/s400/mimzy04.jpg" alt="" id="BLOGGER_PHOTO_ID_5181630788266781586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;More information is available here: &lt;a href="http://www.vfxworld.com/?atype=articles&amp;amp;id=3218&amp;amp;page=1"&gt;VFX Pro&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3897053759909235984-3432266235405907044?l=kolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kolve.blogspot.com/feeds/3432266235405907044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3897053759909235984&amp;postID=3432266235405907044' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/3432266235405907044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/3432266235405907044'/><link rel='alternate' type='text/html' href='http://kolve.blogspot.com/2007/02/last-mimzy-robert-shaye-2007.html' title='The Last Mimzy, Robert Shaye, 2007'/><author><name>Carsten Kolve</name><uri>http://www.blogger.com/profile/05136878708199088359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp0.blogger.com/_CXn820jLK7U/R-fTIZveasI/AAAAAAAAC0s/YgmJsB_n5DQ/S220/IMG_9293.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_CXn820jLK7U/R-U8-pveafI/AAAAAAAACxo/p-U_MnooOR8/s72-c/mimzy.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3897053759909235984.post-1937643838686732880</id><published>2006-10-23T03:59:00.002+10:00</published><updated>2008-04-18T22:55:28.994+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VFX Work'/><title type='text'>Superman Returns, Bryan Singer, 2006</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_CXn820jLK7U/R-U8cJveaeI/AAAAAAAACxg/SqgEZPw5GxA/s1600-h/superman.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5180613400708671970" style="cursor: pointer;" alt="" src="http://bp1.blogger.com/_CXn820jLK7U/R-U8cJveaeI/AAAAAAAACxg/SqgEZPw5GxA/s320/superman.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;My first job for &lt;a href="http://www.rsp.com.au/"&gt;Rising Sun Pictures &lt;/a&gt;in Australia. Not only was I able to flee the English weather, but also got the chance to work as an FX TD on the sequence where Superman returns in a meteor to earth.&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_CXn820jLK7U/SAh4v3PiqMI/AAAAAAAAC38/RoiEKAkJ7fQ/s1600-h/smr_1.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_CXn820jLK7U/SAh4v3PiqMI/AAAAAAAAC38/RoiEKAkJ7fQ/s320/smr_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5190531334222817474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;The job was to come up with a nice looking meteor that would crash into the earth near the Kent farm. As the timeframe was quite small there was no time for custom development - instead we used Maya fluid shaded particles for the volumetric look (inspired by Peter Shipkov's cool &lt;a href="http://petershipkov.com/development/overburn/overburn.htm"&gt;Overburn&lt;/a&gt; setups). &lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_CXn820jLK7U/SAh4wHPiqNI/AAAAAAAAC4E/72b-z4xYrhU/s1600-h/smr_2.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_CXn820jLK7U/SAh4wHPiqNI/AAAAAAAAC4E/72b-z4xYrhU/s320/smr_2.jpg" alt="" id="BLOGGER_PHOTO_ID_5190531338517784786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Add a few utility passes generated in 3delight used for look tweaking and relighting - and the compositor made it all look great!&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Read more about Superman Returns: &lt;a href="http://www.fxguide.com/article360.html"&gt;FX Guide&lt;/a&gt;, &lt;a href="http://vfxworld.com/?atype=articles&amp;amp;id=2926"&gt;VFX Word 1&lt;/a&gt;, &lt;a href="http://vfxworld.com/?atype=articles&amp;amp;id=2934"&gt;VFX World 2&lt;/a&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3897053759909235984-1937643838686732880?l=kolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kolve.blogspot.com/feeds/1937643838686732880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3897053759909235984&amp;postID=1937643838686732880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/1937643838686732880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/1937643838686732880'/><link rel='alternate' type='text/html' href='http://kolve.blogspot.com/2006/10/superman-returns-bryan-singer-2006.html' title='Superman Returns, Bryan Singer, 2006'/><author><name>Carsten Kolve</name><uri>http://www.blogger.com/profile/05136878708199088359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp0.blogger.com/_CXn820jLK7U/R-fTIZveasI/AAAAAAAAC0s/YgmJsB_n5DQ/S220/IMG_9293.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_CXn820jLK7U/R-U8cJveaeI/AAAAAAAACxg/SqgEZPw5GxA/s72-c/superman.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3897053759909235984.post-2554531128710305165</id><published>2006-04-04T03:50:00.000+10:00</published><updated>2008-03-25T07:05:10.764+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VFX Work'/><title type='text'>Poseidon, Wolfgang Petersen, 2006</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_CXn820jLK7U/R-U5P5veaaI/AAAAAAAACxA/JnYtUAv5zis/s1600-h/poseidon.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_CXn820jLK7U/R-U5P5veaaI/AAAAAAAACxA/JnYtUAv5zis/s320/poseidon.jpg" alt="" id="BLOGGER_PHOTO_ID_5180609891720391074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="body"&gt;Warner Bros asked MPC to produce a full cg trailer for the remake of "The Poseidon Adventure" - showing the capsize of the Poseidon in a continous 1.5 minute underwater shot&lt;/span&gt;.&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_CXn820jLK7U/R-U5QJveabI/AAAAAAAACxI/PQURARlXIYM/s1600-h/poseidon_0.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_CXn820jLK7U/R-U5QJveabI/AAAAAAAACxI/PQURARlXIYM/s320/poseidon_0.jpg" alt="" id="BLOGGER_PHOTO_ID_5180609896015358386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;                          &lt;/div&gt;&lt;div style="text-align: justify;"&gt;             &lt;/div&gt;&lt;p style="text-align: justify;" class="body"&gt;I worked as the Lead R&amp;amp;D TD on this project and developed various Maya particle setup and management systems for air bubbles. Lot's and lot's of bubbles. Bubbles in the ships wake, bubbles in splashes, bubbles bursting out of exploding compartment windows, a demolished funnel, exhaust pipes, open doors, debris, drowning people... all interacting with the motion of the fluid.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_CXn820jLK7U/R-U5QZveacI/AAAAAAAACxQ/ITsgM2SJhJU/s1600-h/poseidon_1.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_CXn820jLK7U/R-U5QZveacI/AAAAAAAACxQ/ITsgM2SJhJU/s320/poseidon_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5180609900310325698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Unfortunately the full trailer was never shown in complete - however many parts of this massive shot were used in the promotional trailers.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_CXn820jLK7U/R-U5Q5veadI/AAAAAAAACxY/Li3Kd37GJ3A/s1600-h/poseidon_2.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_CXn820jLK7U/R-U5Q5veadI/AAAAAAAACxY/Li3Kd37GJ3A/s320/poseidon_2.jpg" alt="" id="BLOGGER_PHOTO_ID_5180609908900260306" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Read the VFXPro article on Poseidon&lt;a href="http://www.vfxworld.com/?atype=articles&amp;amp;id=2879&amp;amp;page=1" target="_blank"&gt; here&lt;/a&gt;. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3897053759909235984-2554531128710305165?l=kolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kolve.blogspot.com/feeds/2554531128710305165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3897053759909235984&amp;postID=2554531128710305165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/2554531128710305165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/2554531128710305165'/><link rel='alternate' type='text/html' href='http://kolve.blogspot.com/2008/03/poseidon-wolfgang-petersen-2006.html' title='Poseidon, Wolfgang Petersen, 2006'/><author><name>Carsten Kolve</name><uri>http://www.blogger.com/profile/05136878708199088359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp0.blogger.com/_CXn820jLK7U/R-fTIZveasI/AAAAAAAAC0s/YgmJsB_n5DQ/S220/IMG_9293.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_CXn820jLK7U/R-U5P5veaaI/AAAAAAAACxA/JnYtUAv5zis/s72-c/poseidon.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3897053759909235984.post-4037578716217865347</id><published>2005-12-20T03:42:00.000+11:00</published><updated>2008-03-25T07:04:35.588+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VFX Work'/><title type='text'>Kingdom of Heaven, Ridley Scott, 2005</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_CXn820jLK7U/R-U3RZveaVI/AAAAAAAACwY/Q4W5JkOhw78/s1600-h/koh.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_CXn820jLK7U/R-U3RZveaVI/AAAAAAAACwY/Q4W5JkOhw78/s320/koh.jpg" alt="" id="BLOGGER_PHOTO_ID_5180607718466939218" border="0" /&gt;&lt;/a&gt;&lt;span class="body"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="body"&gt;More crowds! For Ridley Scott's crusader epic MPC's crowd team perfected the "large crowd" simulation workflow. The most important addition to the toolset being a system to reuse simulations as building blocks for other simulations, making the generation of very complex and coordinated crowd motion fast and easily controllable. Besides working in R&amp;amp;D on the enhancement and restructuring of the inhouse crowd system I was again a&lt;/span&gt;&lt;span class="body"&gt; Simulation TD, creating the crowds seen in the Siege sequences and the vultures of the Battle of Hattin aftermath shots.&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_CXn820jLK7U/R-U3S5veaYI/AAAAAAAACww/M1cz531EO7Y/s1600-h/koh_6.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_CXn820jLK7U/R-U3S5veaYI/AAAAAAAACww/M1cz531EO7Y/s320/koh_6.jpg" alt="" id="BLOGGER_PHOTO_ID_5180607744236743042" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="body"&gt;The vultures were controlled by a procedural bird flight emulation system which automaticly adjusted the flapping and banking behaviour based on it's speed, distance to ground and air pressure differences (a simple 3d perlin noise map). It was again realised as an ALICE network. I used guide curves to direct individual hero birds.&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_CXn820jLK7U/R-U3TZveaZI/AAAAAAAACw4/yp2UdogS2Ds/s1600-h/koh_7.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_CXn820jLK7U/R-U3TZveaZI/AAAAAAAACw4/yp2UdogS2Ds/s320/koh_7.jpg" alt="" id="BLOGGER_PHOTO_ID_5180607752826677650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="body"&gt; I added multiple digital stunt double falling and jumping out of collapsing siege towers, crashing into the ground or onto other soldiers - they were realise using PAPI. This is a proprietary physics tool in Maya which allows the seamless blending of motion capture data and ragdoll dynamics.&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_CXn820jLK7U/R-U3R5veaWI/AAAAAAAACwg/n5W4jOscsUc/s1600-h/koh_1.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_CXn820jLK7U/R-U3R5veaWI/AAAAAAAACwg/n5W4jOscsUc/s320/koh_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5180607727056873826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;After more than 2.5 years of development ALICE has reached a very mature state - it is possible to add "inteligence" to virtual every Maya object - from individual characters driven by procedurally controlled motion capture data to vertices in a cloth mesh analyzing their surrounding.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_CXn820jLK7U/R-U3SpveaXI/AAAAAAAACwo/pU5o6AVXbpQ/s1600-h/koh_2.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_CXn820jLK7U/R-U3SpveaXI/AAAAAAAACwo/pU5o6AVXbpQ/s320/koh_2.jpg" alt="" id="BLOGGER_PHOTO_ID_5180607739941775730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;It was a nice surprise that the team's work on Kingdom of Heaven was honored with a &lt;a href="http://www.vesawards.com/" target="_blank"&gt;VES award&lt;/a&gt; for Best Supporting Visual Effects in a motion picture - see the "making of" &lt;a href="http://vfxworld.com/?atype=articles&amp;amp;id=2483" target="_blank"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you haven't seen it yet, be sure to check out the Director's Cut - it's vastly superior to the theatrical release!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3897053759909235984-4037578716217865347?l=kolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kolve.blogspot.com/feeds/4037578716217865347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3897053759909235984&amp;postID=4037578716217865347' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/4037578716217865347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/4037578716217865347'/><link rel='alternate' type='text/html' href='http://kolve.blogspot.com/2008/03/kingdom-of-heaven-ridley-scott-2005.html' title='Kingdom of Heaven, Ridley Scott, 2005'/><author><name>Carsten Kolve</name><uri>http://www.blogger.com/profile/05136878708199088359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp0.blogger.com/_CXn820jLK7U/R-fTIZveasI/AAAAAAAAC0s/YgmJsB_n5DQ/S220/IMG_9293.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_CXn820jLK7U/R-U3RZveaVI/AAAAAAAACwY/Q4W5JkOhw78/s72-c/koh.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3897053759909235984.post-8581410680631446760</id><published>2005-06-13T03:36:00.000+10:00</published><updated>2008-03-25T07:03:58.066+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VFX Work'/><title type='text'>Batman Begins, Christopher Nolan, 2005</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_CXn820jLK7U/R-U15ZveaSI/AAAAAAAACwA/fY0VWEHalLc/s1600-h/batman.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_CXn820jLK7U/R-U15ZveaSI/AAAAAAAACwA/fY0VWEHalLc/s320/batman.jpg" alt="" id="BLOGGER_PHOTO_ID_5180606206638450978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Batman Begins was the chance for me to add another dimension to crowd simulation - the third one. ALICE had so far only been used to produce simulation running in 2d, but for the swarms of bats this was clearly not sufficient. After creating a suitable simulation bat rig in conjunction with the Rigging TD I extended the crowd system to support full 3d movement of agents. In addition I build a Maya dependecy graph rule network which would emulate the flight behaviour of bats.&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_CXn820jLK7U/R-U15pveaTI/AAAAAAAACwI/LQk0CJB7y5A/s1600-h/batman_1.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_CXn820jLK7U/R-U15pveaTI/AAAAAAAACwI/LQk0CJB7y5A/s320/batman_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5180606210933418290" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Custom tools to control the flight motion (eg. guide curves, flow fields and obstacle detectors) helped the Shot TD's to direct the bats, artificial live techniques (like the well known flocking behaviour) added additional variation.&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_CXn820jLK7U/R-U16JveaUI/AAAAAAAACwQ/NuXI5LPpWso/s1600-h/batman_2.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_CXn820jLK7U/R-U16JveaUI/AAAAAAAACwQ/NuXI5LPpWso/s320/batman_2.jpg" alt="" id="BLOGGER_PHOTO_ID_5180606219523352898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Numerous companies worked on Batman Begins, more about the production&lt;a href="http://vfxworld.com/?atype=articles&amp;amp;id=2523" target="_blank"&gt; here&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3897053759909235984-8581410680631446760?l=kolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kolve.blogspot.com/feeds/8581410680631446760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3897053759909235984&amp;postID=8581410680631446760' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/8581410680631446760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/8581410680631446760'/><link rel='alternate' type='text/html' href='http://kolve.blogspot.com/2008/03/batman-begins-christopher-nolan-2005.html' title='Batman Begins, Christopher Nolan, 2005'/><author><name>Carsten Kolve</name><uri>http://www.blogger.com/profile/05136878708199088359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp0.blogger.com/_CXn820jLK7U/R-fTIZveasI/AAAAAAAAC0s/YgmJsB_n5DQ/S220/IMG_9293.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_CXn820jLK7U/R-U15ZveaSI/AAAAAAAACwA/fY0VWEHalLc/s72-c/batman.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3897053759909235984.post-4595452750577265072</id><published>2004-10-23T02:41:00.000+10:00</published><updated>2008-03-25T06:57:59.895+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VFX Work'/><title type='text'>Alexander, Oliver Stone, 2004</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_CXn820jLK7U/R-Up55veaOI/AAAAAAAACvg/20pRijNLoSw/s1600-h/alexander.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_CXn820jLK7U/R-Up55veaOI/AAAAAAAACvg/20pRijNLoSw/s320/alexander.jpg" alt="" id="BLOGGER_PHOTO_ID_5180593021088852194" border="0" /&gt;&lt;/a&gt;&lt;div style="text-align: justify;"&gt;Most of the crowd effects in Alexander were done by the french company Buf. However a number of more close-up crowd shots depicting the battle in the Indian jungle were executed by MPC's team - simulating horses for the first time using ALICE. Apart from a view simple tasks I was not directly involved in the production - however I created various example shots demonstrating the crowd system we developed. They were used to convince the director we were able to produce the battle scenarios he was asking for.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_CXn820jLK7U/R-Up5pveaNI/AAAAAAAACvY/keWIIaxX0zg/s1600-h/alice1.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_CXn820jLK7U/R-Up5pveaNI/AAAAAAAACvY/keWIIaxX0zg/s320/alice1.jpg" alt="" id="BLOGGER_PHOTO_ID_5180593016793884882" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;All about the effects in Alexander&lt;a href="http://vfxworld.com/?atype=articles&amp;amp;id=2303" target="_blank"&gt; here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3897053759909235984-4595452750577265072?l=kolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kolve.blogspot.com/feeds/4595452750577265072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3897053759909235984&amp;postID=4595452750577265072' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/4595452750577265072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/4595452750577265072'/><link rel='alternate' type='text/html' href='http://kolve.blogspot.com/2008/03/alexander-oliver-stone-2004.html' title='Alexander, Oliver Stone, 2004'/><author><name>Carsten Kolve</name><uri>http://www.blogger.com/profile/05136878708199088359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp0.blogger.com/_CXn820jLK7U/R-fTIZveasI/AAAAAAAAC0s/YgmJsB_n5DQ/S220/IMG_9293.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_CXn820jLK7U/R-Up55veaOI/AAAAAAAACvg/20pRijNLoSw/s72-c/alexander.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3897053759909235984.post-487044121635186140</id><published>2004-07-23T02:20:00.000+10:00</published><updated>2008-03-25T06:56:10.877+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VFX Work'/><title type='text'>Troy, Wolfgang Petersen, 2004</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_CXn820jLK7U/R-UlNZveaFI/AAAAAAAACuY/TxcnbZbk5Z8/s1600-h/troy.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_CXn820jLK7U/R-UlNZveaFI/AAAAAAAACuY/TxcnbZbk5Z8/s320/troy.jpg" alt="" id="BLOGGER_PHOTO_ID_5180587858538162258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Troy was my first vfx feature - The Moving Picture Company hired me based on my previous work on crowd simulation (some of which you can see on the site) to become one of the core R&amp;amp;D developers of ALICE. ALICE is the acronym for Artificial LIfe Crowd Engine and a Maya based multi agent animation system that enables Crowd TD's to create crowd layouts and simulations using Maya's build-in and a whole lot of custom tools.&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_CXn820jLK7U/R-Ulk5veaHI/AAAAAAAACuo/4zpwst0uSkQ/s1600-h/alice3.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_CXn820jLK7U/R-Ulk5veaHI/AAAAAAAACuo/4zpwst0uSkQ/s320/alice3.jpg" alt="" id="BLOGGER_PHOTO_ID_5180588262265088114" border="0" /&gt;&lt;/a&gt;   &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_CXn820jLK7U/R-UlkZveaGI/AAAAAAAACug/vg3Co9aXDBc/s1600-h/graphBuilder2.gif"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_CXn820jLK7U/R-UlkZveaGI/AAAAAAAACug/vg3Co9aXDBc/s320/graphBuilder2.gif" alt="" id="BLOGGER_PHOTO_ID_5180588253675153506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="body"&gt;Crowd control networks can easily be generated by simply plugging dependency nodes together. I developed various parts of the ALICE: nodes to control crowd dynamics (math, (fuzzy) logic, state machines, flow control, etc.), the integration of crowds with particle systems (for arrow impacts, dust kicks, blood splashes, etc.), data visualizer and a new interface which enables TD's to build, manage and debug crowd control graphs easily.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_CXn820jLK7U/R-Ul4ZveaII/AAAAAAAACuw/EwxdBUB0l10/s1600-h/troy_1a.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_CXn820jLK7U/R-Ul4ZveaII/AAAAAAAACuw/EwxdBUB0l10/s320/troy_1a.jpg" alt="" id="BLOGGER_PHOTO_ID_5180588597272537218" border="0" /&gt;  &lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_CXn820jLK7U/R-U0rJveaPI/AAAAAAAACvo/-P28QndHWRg/s1600-h/troy_1b.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_CXn820jLK7U/R-U0rJveaPI/AAAAAAAACvo/-P28QndHWRg/s320/troy_1b.jpg" alt="" id="BLOGGER_PHOTO_ID_5180604862313687282" border="0" /&gt;&lt;/a&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;span class="body"&gt;After an extensive R&amp;amp;D phase we finally went into shot production. As a Crowd TD I completed the majority of battle shots. Most of the fighting between the two armies is done using artificial life techniques (or just a good layout and extensive use of randomness and noise).&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_CXn820jLK7U/R-UmP5veaKI/AAAAAAAACvA/A-Fhx8o4HNs/s1600-h/troy_3c.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_CXn820jLK7U/R-UmP5veaKI/AAAAAAAACvA/A-Fhx8o4HNs/s320/troy_3c.jpg" alt="" id="BLOGGER_PHOTO_ID_5180589000999463074" border="0" /&gt;  &lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_CXn820jLK7U/R-U0rpveaRI/AAAAAAAACv4/mdNN9mhPPcU/s1600-h/troy_3a.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_CXn820jLK7U/R-U0rpveaRI/AAAAAAAACv4/mdNN9mhPPcU/s320/troy_3a.jpg" alt="" id="BLOGGER_PHOTO_ID_5180604870903621906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="body"&gt;For the close combat scenes I devised a system which enables the use of pre-choreographed multi-character animation clips within a crowd simulation. It was used to insert many high quality 1-on-1 fights performed my stunt actors into the melee - which helped a lot in making the action more believable.&lt;/span&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_CXn820jLK7U/R-UmP5veaJI/AAAAAAAACu4/_SHEX3IM58g/s1600-h/troy_2b.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_CXn820jLK7U/R-UmP5veaJI/AAAAAAAACu4/_SHEX3IM58g/s320/troy_2b.jpg" alt="" id="BLOGGER_PHOTO_ID_5180589000999463058" border="0" /&gt;  &lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_CXn820jLK7U/R-U0rZveaQI/AAAAAAAACvw/LDl-qnEKBwM/s1600-h/troy_2a.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_CXn820jLK7U/R-U0rZveaQI/AAAAAAAACvw/LDl-qnEKBwM/s320/troy_2a.jpg" alt="" id="BLOGGER_PHOTO_ID_5180604866608654594" border="0" /&gt;&lt;/a&gt;&lt;div style="text-align: justify;"&gt;More information on the production of Troy can be found&lt;a href="http://vfxworld.com/?atype=articles&amp;amp;id=2105" target="_blank"&gt; here&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3897053759909235984-487044121635186140?l=kolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kolve.blogspot.com/feeds/487044121635186140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3897053759909235984&amp;postID=487044121635186140' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/487044121635186140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/487044121635186140'/><link rel='alternate' type='text/html' href='http://kolve.blogspot.com/2008/03/troy-wolfgang-petersen-2004.html' title='Troy, Wolfgang Petersen, 2004'/><author><name>Carsten Kolve</name><uri>http://www.blogger.com/profile/05136878708199088359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp0.blogger.com/_CXn820jLK7U/R-fTIZveasI/AAAAAAAAC0s/YgmJsB_n5DQ/S220/IMG_9293.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_CXn820jLK7U/R-UlNZveaFI/AAAAAAAACuY/TxcnbZbk5Z8/s72-c/troy.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3897053759909235984.post-7347647821912678301</id><published>2004-06-25T06:13:00.000+10:00</published><updated>2008-03-25T07:00:55.472+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maya Tutorials'/><title type='text'>Spider Crawling System</title><content type='html'>&lt;span style="font-weight: bold;"&gt;About&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;This tutorial describes how the mel based spider crawling system used in the &lt;a href="http://www.youtube.com/watch?v=uRTo9qECQrM"&gt;brainbugz video&lt;/a&gt; works. It's not a proper tutorial yet and there are many parts of the used scripts could be made better, but until I find the time for it this will have to do :-)&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;To begin, download &lt;a href="http://www.kolve.com/mt_spiderAnim/spiderWalk.ma"&gt;this file&lt;/a&gt;, open and play it. The spider should walk along the motion path as time progresses, adapting to the terrain. Change the motion path or the terrain to see that the motion is entirely procedural.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_CXn820jLK7U/R-f-nJvea2I/AAAAAAAAC18/I8W5rPmu2CQ/s1600-h/spiderAnim.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_CXn820jLK7U/R-f-nJvea2I/AAAAAAAAC18/I8W5rPmu2CQ/s400/spiderAnim.jpg" alt="" id="BLOGGER_PHOTO_ID_5181389844896443234" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Spider Setup&lt;/span&gt;&lt;br /&gt;The spider is the example is a pretty simple proxy model - but could be replace with a more realistic one:&lt;br /&gt;&lt;p class="heading2"&gt;&lt;span class="body"&gt;     The top of the hierarchy is it the locator &lt;strong&gt;spiderController1&lt;/strong&gt;. Under it you'll find the spider's body spider1. 8 legs are parented under the body. Each of them consists of a number of joints that form the leg, these are controlled by an ikControl with an ikHandle at the end. With it's motion the complete leg can be controlled. The individual geometry segments are just parented under these leg joints. &lt;/span&gt;&lt;/p&gt;       &lt;p class="heading2"&gt;&lt;span style="font-weight: bold;"&gt;Procedural Animation&lt;/span&gt;&lt;br /&gt;     &lt;span class="body"&gt;So, how does this beast move?&lt;/span&gt;&lt;/p&gt;       &lt;p class="heading2"&gt;&lt;span class="body"&gt;The body&lt;strong&gt;:&lt;/strong&gt;&lt;br /&gt;       &lt;strong&gt;spiderController1&lt;/strong&gt; is animated along the motion path. The body &lt;strong&gt;spider1&lt;/strong&gt; is contrained to the terrain with the geometryConstraint &lt;strong&gt;spiderGC&lt;/strong&gt;. In addition to this the normalConstraint &lt;strong&gt;spiderNC&lt;/strong&gt; is sampled within an expression that controls the alignment of the spider's body. Within the expression &lt;strong&gt;spiderBodyExpression&lt;/strong&gt; (which drives the body transform) you can see how this is done - noise is added to added to the body's rotation to make the motion more natural. &lt;/span&gt; &lt;/p&gt;                     &lt;p&gt;The legs:&lt;br /&gt;     Now this is where it get interesting:       If you look at the Attribute Editor &gt; Extra Attributes section of the &lt;strong&gt;spiderController&lt;/strong&gt; locator, you'll see a number of parameter - they all control how the spider leg moves. The spider animation is cyclic, the length of the walk cycle is not determined by time, but by transition along the motion path. &lt;strong&gt;walkCycleTransition&lt;/strong&gt; determins the length along the motion path which is used for one cycle. All the animation controls work relative to this range. For convinience this transition length is treated as &lt;strong&gt;1&lt;/strong&gt;, so the range is normalized (between 0 and 1) and all animation controls related to timing operate in this 0-1 range. In particular these are &lt;strong&gt;stepStart&lt;/strong&gt; and &lt;strong&gt;stepDuration&lt;/strong&gt;, they determine when during the walk cycle a single step starts and how long it will take. So when moving along the motionPath for every leg it is determined if&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;the time is not ready to step - in this case keep the ikHandle which controls the leg planted at it's current position&lt;/li&gt;&lt;li&gt;the time has arrived to start a step - store the current position in &lt;strong&gt;currStepStartPos&lt;/strong&gt; and set &lt;strong&gt;currStep&lt;/strong&gt; to 1 (this indicates a step is taken), determine an end position for the step (this is done by adding the end position relative to the body &lt;strong&gt;relStepEndPos&lt;/strong&gt; to the body's position, this position is then transferred to the &lt;strong&gt;surfacePointLocator&lt;/strong&gt; which is connected to a closestPointOnSurface node &lt;strong&gt;spiderSurfacePointFinder&lt;/strong&gt; which in turn gives us the final end position for the current step on the surface &lt;strong&gt;currStepEndPos&lt;/strong&gt; - phew!)&lt;/li&gt;&lt;li&gt;the step is currently taken (&lt;strong&gt;currStep&lt;/strong&gt; is 1) - if we are stepping a simple hermite interpolation is used to compute the position of the ikHandle at the end of leg, from &lt;strong&gt;currStepStartPos&lt;/strong&gt; to &lt;strong&gt;currStepEndPos&lt;/strong&gt; starting with a tangent of &lt;strong&gt;stepStartTangent&lt;/strong&gt; and ending with &lt;strong&gt;stepEndTangent&lt;/strong&gt;. the step's progress is determined by the current progress through the cycle transition length, &lt;strong&gt;stepStart&lt;/strong&gt; and &lt;strong&gt;stepDuration&lt;/strong&gt; (for more insights check the "hermite" mel command) &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;      To see how this is all achieved in practice, check the expression which drives the extra attributes of the spider controller.&lt;br /&gt;I hope this was not too technical and gave you some insights into how this procedural animation was achieved. If you have any questions or suggestions how to made it clearer, please contact me.&lt;br /&gt;Of course there is a lot of space for improvements - feel free to experiment and I'd be interested in seeing what you come up with! &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3897053759909235984-7347647821912678301?l=kolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kolve.blogspot.com/feeds/7347647821912678301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3897053759909235984&amp;postID=7347647821912678301' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/7347647821912678301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/7347647821912678301'/><link rel='alternate' type='text/html' href='http://kolve.blogspot.com/2008/03/spider-crawling-system.html' title='Spider Crawling System'/><author><name>Carsten Kolve</name><uri>http://www.blogger.com/profile/05136878708199088359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp0.blogger.com/_CXn820jLK7U/R-fTIZveasI/AAAAAAAAC0s/YgmJsB_n5DQ/S220/IMG_9293.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_CXn820jLK7U/R-f-nJvea2I/AAAAAAAAC18/I8W5rPmu2CQ/s72-c/spiderAnim.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3897053759909235984.post-3287568430924720322</id><published>2004-03-26T05:24:00.001+11:00</published><updated>2008-04-21T20:19:33.508+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maya Plugins'/><title type='text'>Brainbugz</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_CXn820jLK7U/SAxqFn0sy2I/AAAAAAAAC4k/ZghWyeFSKOU/s1600-h/bbArachnoPrev.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_CXn820jLK7U/SAxqFn0sy2I/AAAAAAAAC4k/ZghWyeFSKOU/s320/bbArachnoPrev.jpg" alt="" id="BLOGGER_PHOTO_ID_5191641115273251682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="body"&gt;&lt;span style="font-weight: bold;"&gt;About&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="body"&gt;brainbugz is a set of A|W Maya nodes and commands that enable you to use &lt;i&gt;behavioural animation&lt;/i&gt; techniques on particles. A particle system is a system in which forces such as gravity or wind are applied to mass-points, so that these mass-points change their position in space. In contrast to this, in behavioural animation mass-points are not forced from the outside, forces are &lt;i&gt;self applied&lt;/i&gt; based on physical attributes and one or many behavioural rules. These so called &lt;i&gt;steerings desires&lt;/i&gt; can be clever combined and attached to a number of mass-points, so these mass-points are no longer simple physical objects, but become autonomous characters, referred to here as „&lt;i&gt;bugs&lt;/i&gt;“.&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="body"&gt; This concept tries to reflect real life on an abstract level, where all characters act based on individual behavioural rules, their view of the world and the other characters surrounding them. Think of a school of fish, a flock of birds, athlets running a marathon - all groups of individuals with local behavioural rules (avoid touching the other characters, get from point A to point B, try to stay near the other group members, ...), but the sum of all individual local movements results in a more or less coordinated &lt;i&gt;crowd motion&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Features&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;13 different steering desires:&lt;br /&gt;&lt;b&gt;individal bug based:&lt;/b&gt; head direction, wander&lt;b&gt;&lt;br /&gt;target based: &lt;/b&gt;seek, moth-seek, arrival, pursuit, shadow, following of curve / surface, obstacle avoidance&lt;b&gt;&lt;br /&gt;neighbor based:&lt;/b&gt; alignment, cohesion, separation, keep distance&lt;/li&gt;&lt;li&gt;all desired can be used as stand alone force fields&lt;/li&gt;&lt;li&gt;desires can be combined with each other and / or standard fields to achieve complex higher level behaviours (e.g. flocking)&lt;/li&gt;&lt;li&gt;easy to use interface, no scripting needed to setup a behavioural system&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Documentation&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.kolve.com/mp_brainbugz/docs/brainbugz.htm" target="_blank"&gt;&lt;/a&gt;You can read the &lt;a href="http://www.kolve.com/mp_brainbugz/docs/brainbugz.htm"&gt;brainbugz documentation&lt;/a&gt; &lt;span class="body"&gt;here.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;span class="body"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="body"&gt;check out the &lt;a href="http://code.google.com/p/brainbugz/"&gt;source code&lt;/a&gt; from google code&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="body"&gt;download the &lt;a href="http://www.highend3d.com/maya/downloads/plugins/dynamics/1952.html"&gt;compiled plugin&lt;/a&gt; for various platforms from highend 3d&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="body"&gt;&lt;span style="font-weight: bold;"&gt;Examples&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;A bunch of spiders, crawling on uneven terrain and avoiding obstacles. Behavioural particle motion was converted to paths. Spiders driven by an expression based walking system for legged motion were attached to these paths.&lt;br /&gt;&lt;object height="350" width="425"&gt;&lt;br /&gt;&lt;param name="movie" value="http://www.youtube.com/v/uRTo9qECQrM"&gt;&lt;br /&gt;&lt;embed src="http://www.youtube.com/v/uRTo9qECQrM" type="application/x-shockwave-flash" height="350" width="425"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/object&gt;&lt;br /&gt;Flocking - Particles performing the infamous flocking behaviour.&lt;br /&gt;&lt;object height="350" width="425"&gt;&lt;br /&gt;&lt;param name="movie" value="http://www.youtube.com/v/sEVO0-8idYY"&gt;&lt;br /&gt;&lt;embed src="http://www.youtube.com/v/sEVO0-8idYY" type="application/x-shockwave-flash" height="350" width="425"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3897053759909235984-3287568430924720322?l=kolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kolve.blogspot.com/feeds/3287568430924720322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3897053759909235984&amp;postID=3287568430924720322' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/3287568430924720322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/3287568430924720322'/><link rel='alternate' type='text/html' href='http://kolve.blogspot.com/2004/03/brainbugz.html' title='Brainbugz'/><author><name>Carsten Kolve</name><uri>http://www.blogger.com/profile/05136878708199088359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp0.blogger.com/_CXn820jLK7U/R-fTIZveasI/AAAAAAAAC0s/YgmJsB_n5DQ/S220/IMG_9293.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_CXn820jLK7U/SAxqFn0sy2I/AAAAAAAAC4k/ZghWyeFSKOU/s72-c/bbArachnoPrev.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3897053759909235984.post-8406064272872416832</id><published>2003-04-25T05:51:00.000+10:00</published><updated>2008-03-25T07:00:05.036+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maya Tutorials'/><title type='text'>Wacky Vehicle</title><content type='html'>&lt;span style="font-weight: bold;"&gt;About&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;  While you have learned in the rolling ellipse tutorial how to roll an ellipse on the floor, we will now use this expression to build a funny moving vehicle. I won't focus on modelling issues, but on the math to make this little thingy move.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Modeling&lt;/span&gt;&lt;br /&gt;Let's build a simple proxy model of a vehicle. We'll start with the wheels:&lt;br /&gt;Create a polygon cylinder (radius = 1.0; height = 0.3; subDivs around axis = 20; subdivs on caps = 0; axis = z;), rename it to "wheelFL" - this will be our front-left wheel. Delete its history.&lt;br /&gt;Scale the wheel by 2.0 in x-direction. Create a locator "locFL", make it a child of the wheel. This will be the contact point with the main body later on.&lt;br /&gt;     Note: Of course you are free to use a nurbsCylinder, too.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_CXn820jLK7U/R-f5PZvea0I/AAAAAAAAC1s/ae9BTTwRYic/s1600-h/wheel2.gif"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_CXn820jLK7U/R-f5PZvea0I/AAAAAAAAC1s/ae9BTTwRYic/s400/wheel2.gif" alt="" id="BLOGGER_PHOTO_ID_5181383939316411202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Dublicate the wheel 3 times. Rename the new wheels to "wheelFR", "wheelBL", "wheelBR". Update the child locators accordingly, too.&lt;br /&gt;     Move "wheelFL" to [3,1,-3], "wheelFR" to [3,1,3], "wheelBL" to [-3,1,-3], "wheelBR" to [-3,1,3].&lt;br /&gt;Create a polyCube "body" (w=10; h=1;d=5). Create a locator "vehicle", move it above the vehicle parts and freeze its transforms.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_CXn820jLK7U/R-f5PZveazI/AAAAAAAAC1k/Ws9ziXUE7rg/s1600-h/vehicle1.gif"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_CXn820jLK7U/R-f5PZveazI/AAAAAAAAC1k/Ws9ziXUE7rg/s400/vehicle1.gif" alt="" id="BLOGGER_PHOTO_ID_5181383939316411186" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Rigging&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;   Now that we have build ourselfs a nice little vehicle, let's add some funcionality. - First, parent all vehicle parts to the "vehicle" locator. We will use this locator to move the vehicle later on.&lt;br /&gt;      Your outliner should look like this:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_CXn820jLK7U/R-f515vea1I/AAAAAAAAC10/MBp2SouulAg/s1600-h/outliner.gif"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_CXn820jLK7U/R-f515vea1I/AAAAAAAAC10/MBp2SouulAg/s400/outliner.gif" alt="" id="BLOGGER_PHOTO_ID_5181384600741374802" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;We will now turn the "vehicle" locator into the interface to the expressions, driving the animation of our vehicle. Add custom attributes as shown on the left to the "vehicle" node.&lt;br /&gt;The ones ending with "_EXPR" are of type "integer" and their purpose is to give us easy access to the respective expression.&lt;br /&gt;       The other ones will serve us as a means to enter a rotational offset for each wheel. Ther are of type "float".&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_CXn820jLK7U/R-f5OZveawI/AAAAAAAAC1M/HYhqgAiAC-I/s1600-h/extraAttr.gif"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_CXn820jLK7U/R-f5OZveawI/AAAAAAAAC1M/HYhqgAiAC-I/s400/extraAttr.gif" alt="" id="BLOGGER_PHOTO_ID_5181383922136541954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Now we'lll add slightly modified version of the roll ellipse script to each of the wheels.&lt;br /&gt;Add the below expression to each of the respective wheel expression interface attributes, don't forget to change the name of the wheel accordingly (you can quickly do this by using a "search and replace" on "FL" in your favourite text editor). I won't go much into details here, take a look at the first tutorial for more information.&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;// helper connection to the interface attribute&lt;br /&gt;vehicle.wheelFL_EXPR =0;&lt;br /&gt;&lt;br /&gt;// constant values&lt;br /&gt;$pi = 3.141592;&lt;br /&gt;&lt;br /&gt;// radii of the elliptical wheel&lt;br /&gt;$rA = 2.0;&lt;br /&gt;$rB = 1.0;&lt;br /&gt;&lt;br /&gt;// get translation of the vehicle and offset of the wheel&lt;br /&gt;$x = vehicle.translateX;&lt;br /&gt;$rotZOffset = vehicle.rotOffsetFL;&lt;br /&gt;&lt;br /&gt;// as we are working in radians, convert the rot offset&lt;br /&gt;$rotZOffset = deg_to_rad($rotZOffset);&lt;br /&gt;&lt;br /&gt;// compute perimeter of elliptical wheel&lt;br /&gt;$per = $pi*($rA+$rB);&lt;br /&gt;&lt;br /&gt;// compute the rotation of the wheel&lt;br /&gt;$rot = (-2*$pi*$x/$per)+$rotZOffset;&lt;br /&gt;&lt;br /&gt;// adjust the y-position of the wheels center&lt;br /&gt;$y = abs((-sin($rot)*tan($rot)*$rA*$rA)-(cos($rot)*$rB*$rB))/&lt;br /&gt;    sqrt($rA*$rA*pow(tan($rot),2)+$rB*$rB);&lt;br /&gt;&lt;br /&gt;// apply the results to our wheel&lt;br /&gt;wheelFL.translateY = $y;&lt;br /&gt;wheelFL.rotateZ = rad_to_deg($rot);&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Test if all the wheels are rolling correctly by moving the vehicle locator in x-direction. Change the rotational offset values to test if they work correctly, too. Make sure everything runs fine.&lt;br /&gt;OK? Good, on to the movement of the body. The pupose of our expression is to move the main body so it tries to stay in contact with the contact locators on the wheels. Our first concern is to adjust the position of the main body, we will move this to the mean position of all contact locators. Of course, we've got to use their world position for this as they are not on the same hirachy level as our "body"!&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;// helper connection to the interface attribute&lt;br /&gt;vehicle.body_EXPR =0.0;&lt;br /&gt;&lt;br /&gt;// get positions of contact points of every wheel&lt;br /&gt;float $pos[];&lt;br /&gt;&lt;br /&gt;$pos = `xform -q -ws -t locFL`;&lt;br /&gt;vector $posFL = &amp;lt;&amp;lt;$pos[0],$pos[1],$pos[2]&amp;gt;&amp;gt;;&lt;br /&gt;&lt;br /&gt;$pos = `xform -q -ws -t locFR`;&lt;br /&gt;vector $posFR = &amp;lt;&amp;lt;$pos[0],$pos[1],$pos[2]&amp;gt;&amp;gt;;&lt;br /&gt;&lt;br /&gt;$pos = `xform -q -ws -t locBL`;&lt;br /&gt;vector $posBL = &amp;lt;&amp;lt;$pos[0],$pos[1],$pos[2]&amp;gt;&amp;gt;;&lt;br /&gt;&lt;br /&gt;$pos = `xform -q -ws -t locBR`;&lt;br /&gt;vector $posBR = &amp;lt;&amp;lt;$pos[0],$pos[1],$pos[2]&amp;gt;&amp;gt;;&lt;br /&gt;&lt;br /&gt;// compute mean position&lt;br /&gt;vector $meanPos = ($posFL + $posFR + $posBL + $posBR) / 4.0;&lt;br /&gt;&lt;br /&gt;// [..]&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Our next step is to get the rotation in x- and z-direction for our body. We'll measure the angles between the relative axis and the vector between the respective wheels, to obtain the angle by which we have got to rotate the vehicle's body.&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;// [..]&lt;br /&gt;&lt;br /&gt;// get x-angle between the left and right contact position and&lt;br /&gt;// the z-axis, do this for front and back, our rotation angle&lt;br /&gt;// will be the mean angle&lt;br /&gt;&lt;br /&gt;float $angleXF = `angle &amp;lt;&amp;lt;0.0,0.0,1.0&amp;gt;&amp;gt; ( $posFL - $posFR )`;&lt;br /&gt;if ($posFL.y &amp;gt; $posFR.y) $angleXF = -$angleXF;&lt;br /&gt;&lt;br /&gt;float $angleXB = `angle &amp;lt;&amp;lt;0.0,0.0,1.0&amp;gt;&amp;gt; ( $posBL - $posBR )`;&lt;br /&gt;if ($posBL.y &amp;gt; $posBR.y) $angleXB = -$angleXB;&lt;br /&gt;&lt;br /&gt;float $angleX = ($angleXB+$angleXF)/2.0;&lt;br /&gt;&lt;br /&gt;// get z-angle between the front and back contact position and&lt;br /&gt;// the x-axis, do this for left and right, our rotation angle&lt;br /&gt;// will be the mean angle&lt;br /&gt;&lt;br /&gt;float $angleZL = `angle &amp;lt;&amp;lt;1.0,0.0,0.0&amp;gt;&amp;gt; ( $posFL - $posBL )`;&lt;br /&gt;if ($posFL.y &amp;lt; $posBL.y) $angleZL = -$angleZL;&lt;br /&gt;&lt;br /&gt;float $angleZR = `angle &amp;lt;&amp;lt;1.0,0.0,0.0&amp;gt;&amp;gt; ( $posFR - $posBR )`;&lt;br /&gt;if ($posFR.y &amp;lt; $posBR.y) $angleZR = -$angleZR;&lt;br /&gt;&lt;br /&gt;float $angleZ = ($angleZL+$angleZR)/2.0;&lt;br /&gt;&lt;br /&gt;// [..]&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Finally, we have got to apply the results to the "body":&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;// [..]&lt;br /&gt;&lt;br /&gt;// apply results to body, take into account that "body" is&lt;br /&gt;// parented to "vehicle"&lt;br /&gt;&lt;br /&gt;body.translateX = $meanPos.x - vehicle.translateX;&lt;br /&gt;body.translateY = $meanPos.y - vehicle.translateY;&lt;br /&gt;body.translateZ = $meanPos.z - vehicle.translateZ;&lt;br /&gt;&lt;br /&gt;body.rotateX = rad_to_deg($angleX);&lt;br /&gt;body.rotateZ = rad_to_deg($angleZ);&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Here you are! - Some suggestions:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;try different rotational offset settings&lt;/li&gt;&lt;li&gt;change the size of the wheels (don't forget to adjust the radii in the expressions!)&lt;/li&gt;&lt;li&gt;move the position of the contact locators on the wheels&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_CXn820jLK7U/R-f5O5veaxI/AAAAAAAAC1U/UqtX93kGuYU/s1600-h/vehicle2.gif"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_CXn820jLK7U/R-f5O5veaxI/AAAAAAAAC1U/UqtX93kGuYU/s400/vehicle2.gif" alt="" id="BLOGGER_PHOTO_ID_5181383930726476562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Download the scene at &lt;a href="http://www.highend3d.com/maya/mel/?section=animation#1856"&gt;highend3d.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Example Movie&lt;br /&gt;&lt;/span&gt;to come&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=";font-family:Times New Roman,Times,serif;font-size:100%;"  &gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3897053759909235984-8406064272872416832?l=kolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kolve.blogspot.com/feeds/8406064272872416832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3897053759909235984&amp;postID=8406064272872416832' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/8406064272872416832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/8406064272872416832'/><link rel='alternate' type='text/html' href='http://kolve.blogspot.com/2008/03/wacky-vehicle.html' title='Wacky Vehicle'/><author><name>Carsten Kolve</name><uri>http://www.blogger.com/profile/05136878708199088359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp0.blogger.com/_CXn820jLK7U/R-fTIZveasI/AAAAAAAAC0s/YgmJsB_n5DQ/S220/IMG_9293.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_CXn820jLK7U/R-f5PZvea0I/AAAAAAAAC1s/ae9BTTwRYic/s72-c/wheel2.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3897053759909235984.post-5077687253922616589</id><published>2003-03-25T01:47:00.000+11:00</published><updated>2008-03-25T06:59:34.431+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maya Tutorials'/><title type='text'>Rolling Ellipse</title><content type='html'>&lt;div style="text-align: justify;"&gt;This tutorial shows you how to roll an ellipse on the floor, using Maya expressions. Have no fear, I won't go too much into mathematical details here, but will provide you with ready to use expressions for copy and paste. If you really want to dive into the wonders of elliptical calculus, you'll find the links to sites I used to obtain the mathematical background information at the end of this tutorial. I'll assume you are familiar with basic Maya workflow (expression editing, geometry creation, etc.) and some basic math, your angular unit should be "degrees".&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Rolling Circle&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_CXn820jLK7U/R-e_cZveapI/AAAAAAAAC0Q/44ZOC3dE430/s1600-h/circle1.gif"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_CXn820jLK7U/R-e_cZveapI/AAAAAAAAC0Q/44ZOC3dE430/s320/circle1.gif" alt="" id="BLOGGER_PHOTO_ID_5181320390980299410" border="0" /&gt;&lt;/a&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="body"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Before we'll roll an ellipse, let's see how to roll a circle as we can apply the insights gained from this on the ellipse proplem.&lt;br /&gt;&lt;br /&gt;Create a nurbsCircle (radius = 1.0; axis = z;), rename it to "circle", switch to othographic front view, move the center of the circle to [0,1].      &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div style="text-align: justify;"&gt;Note: Instead of a nurbsCircle you can also create a nurbsCylinder, so you'll be able to watch the movement of the object in perspective view more clearly.&lt;blockquote&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p style="text-align: justify;" class="body"&gt;&lt;/p&gt;&lt;/blockquote&gt;Now we'll add a little expression to the z rotation of the circle:&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;$pi = 3.141592;&lt;br /&gt;// radius of circle&lt;br /&gt;$rA = 1.0;&lt;br /&gt;&lt;br /&gt;// get translation in x direction&lt;br /&gt;$x = circle.translateX; // perimeter of circle&lt;br /&gt;$per = 2.0 * $pi *$rA;&lt;br /&gt;&lt;br /&gt;// rotation circle has made when travelling x units&lt;br /&gt;$rot = -360.0 * ($x / $per); // apply rotation to circle&lt;br /&gt;circle.rotateZ = $rot;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;What have we just done? When you move a circle on the ground, the length of the arc has to equal the length travelled in x-direction. So the rotation required to do this can be obtained as a function of the complete rotation of a circle (360°), the length travelled in x-direction and the perimeter of the circle. A final multiplication with -1 will ensure the circle rotates in the correct direction.       Alternativly you could use this expression, which is a condensed form of the upper one, faster to execute but not very readable&lt;/div&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;$rA = 1.0;&lt;br /&gt;circle.rotateZ = -57.29578 * circle.translateX / $rA;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:Times New Roman,Times,serif;font-size:100%;"  &gt;&lt;span class="body"&gt;&lt;/span&gt;&lt;/span&gt;Move the circle in x direction and see how the expression rotates your circle correctly.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;The Rolling Ellipse&lt;/span&gt;&lt;br /&gt;Now on to the rolling ellipse: Scale the circle by 2.0 in x-direction, rename it to "ellipse".&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_CXn820jLK7U/R-e_b5veanI/AAAAAAAAC0A/w8TXTWyulg0/s1600-h/ellipse1.gif"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_CXn820jLK7U/R-e_b5veanI/AAAAAAAAC0A/w8TXTWyulg0/s320/ellipse1.gif" alt="" id="BLOGGER_PHOTO_ID_5181320382390364786" border="0" /&gt;   &lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_CXn820jLK7U/R-e_bpveamI/AAAAAAAACz4/U05cpm6bqL8/s1600-h/definitions.gif"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_CXn820jLK7U/R-e_bpveamI/AAAAAAAACz4/U05cpm6bqL8/s320/definitions.gif" alt="" id="BLOGGER_PHOTO_ID_5181320378095397474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;We will start like we did with the circle and find an expression for the perimeter of the ellipse. Unfortunatly there is no simple formula for the circumference of an ellipse like the one we used for the circle (2*PI*r). In fact, obtaining the exact result is not an opportunity here as it would require us to deal with sums of infinitely many terms, elliptic integrals and the likes... everything not only very complicated and difficult to implement but also very computational expensive. Luckily there exist quite a lot of much simpler approximations for the perimeter of an ellipse, so we just use these. It's in the nature of approximation that it inherits a relative error, but we will choose formulas that will have a very small error so the effect won't be very visible.&lt;br /&gt;I will give you some approximation formulas, sorted by relative error (from big to small), choose one wich you works best for you (in many cases already the simplest one will give good results).&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;$pi = 3.141592;&lt;br /&gt;&lt;br /&gt;$rA = 2.0;&lt;br /&gt;$rB = 1.0;&lt;br /&gt;&lt;br /&gt;// compute perimeter&lt;br /&gt;//&lt;br /&gt;&lt;br /&gt;// simple&lt;br /&gt;$per = $pi*($rA+$rB);&lt;br /&gt;&lt;br /&gt;// Kepler&lt;br /&gt;$per = 2.0*$pi*sqrt($rA*$rB);&lt;br /&gt;&lt;br /&gt;// Euler&lt;br /&gt;$per = $pi*sqrt(2.0*($rA*$rA+$rB*$rB));&lt;br /&gt;&lt;br /&gt;// unknown&lt;br /&gt;$per = $pi*sqrt(2.0*($rA*$rA+$rB*$rB)-(pow(($rA-$rB),2)*0.5));&lt;br /&gt;&lt;br /&gt;// Ramanujan I&lt;br /&gt;$per = $pi*(3*($rA+$rB)-sqrt((3*$rA+$rB)*($rA+3*$rB)));&lt;br /&gt;&lt;br /&gt;// Ramanujan II&lt;br /&gt;$h = pow(($rA-$rB),2)/(pow(($rA+$rB),2));&lt;br /&gt;$per = $pi*($rA+$rB)*(1+3*$h/(10+sqrt(4-3*$h)));&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;Now that we have got the perimeter, let's compute the angle of rotation required to fit the translation of the ellipse, just like we did with the circle (note that we are working in radians here, hence the 2*PI instead of 360°):&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;$x = ellipse.translateX;&lt;br /&gt;$rot = -2*$pi*$x/$per;&lt;br /&gt;ellipse.rotateZ = rad_to_deg($rot);&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p class="body"&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;&lt;blockquote&gt;IMPORTANT: This is mathematically wrong! I made the assumption that the ellipse had everywhere the same curvature (like a circle), but this is not true. So this will only look correct if you do not have very elongated ellipses. I will update this tutorial when I have found a simple solution to this problem (the arc length and angle relationship is not linear!).&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;       &lt;p style="text-align: justify;" class="body"&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;Now that we have found the rotation, we still need to adjust the y-position of the ellipse's center.&lt;br /&gt;&lt;/div&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;$y = abs((-sin($rot)*tan($rot)*$rA*$rA)-(cos($rot)*$rB*$rB))/&lt;br /&gt;sqrt($rA*$rA*pow(tan($rot),2)+$rB*$rB);&lt;br /&gt;&lt;br /&gt;ellipse.translateY = $y;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;Yes, that looks scary. I won't go into much detail about this term, but basically it epresses the y-component of the point of tangency for a specific angle, rotational transformed to fit the current coordinate system for the ellipse. Add the expression to your scene, move the ellipse in x-direction and watch it rolling on the floor.&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_CXn820jLK7U/R-fHupveaqI/AAAAAAAAC0Y/biZiJ110rO4/s1600-h/ellipse_roll.gif"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_CXn820jLK7U/R-fHupveaqI/AAAAAAAAC0Y/biZiJ110rO4/s400/ellipse_roll.gif" alt="" id="BLOGGER_PHOTO_ID_5181329500605934242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Enjoy :)&lt;br /&gt;&lt;br /&gt;You can download an example scene at &lt;a href="http://www.highend3d.com/maya/mel/?section=animation#1856"&gt;highend3d&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I used these pages for reference: &lt;a href="http://mathworld.wolfram.com/Ellipse.html%20"&gt;Mathworld&lt;/a&gt;, &lt;a href="http://home.att.net/%7Enumericana/answer/ellipse.htm"&gt;Numericana&lt;/a&gt;, &lt;a href="http://www.mapleapps.com/categories/mathematics/vector_calculus/html/rollingEllipse6.html"&gt;Maple Center&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3897053759909235984-5077687253922616589?l=kolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kolve.blogspot.com/feeds/5077687253922616589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3897053759909235984&amp;postID=5077687253922616589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/5077687253922616589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/5077687253922616589'/><link rel='alternate' type='text/html' href='http://kolve.blogspot.com/2008/03/rolling-ellipse.html' title='Rolling Ellipse'/><author><name>Carsten Kolve</name><uri>http://www.blogger.com/profile/05136878708199088359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp0.blogger.com/_CXn820jLK7U/R-fTIZveasI/AAAAAAAAC0s/YgmJsB_n5DQ/S220/IMG_9293.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_CXn820jLK7U/R-e_cZveapI/AAAAAAAAC0Q/44ZOC3dE430/s72-c/circle1.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3897053759909235984.post-6749962665529078632</id><published>2002-03-25T04:24:00.000+11:00</published><updated>2008-03-25T06:58:36.071+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thesis'/><title type='text'>Simulating Crowd-Motion using Behavioural Animation</title><content type='html'>&lt;span style="font-weight: bold;"&gt;About&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;"Simulating Crowd-Motion using Behavioural Animation" is title of my diploma for the grade of Diplom Informatiker (FH) at the &lt;a href="http://www.fh-dortmund.de/"&gt;University of Applied Sciences Dortmund&lt;/a&gt; which I successfully completed in May 2000. You'll find the paper on the topic , the implementation of the findings and some sample animations generated with my software. This work is heavily based on the findings of Craig W. Reynolds, the man who released papers on behavioural animation first and inspired people to use such techniques in films like "The Lion King" (Disney) or "Jurassic Park" (Universal) to animate crowds. Visit his &lt;a href="http://www.red3d.com/cwr/"&gt;website&lt;/a&gt;, it is an excellent starting point for many highly interisting topics of computer graphics and artificial intelligence.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_CXn820jLK7U/R-flK5veauI/AAAAAAAAC08/PMH8J6Jl9z0/s1600-h/s_groupobstacleavoid.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_CXn820jLK7U/R-flK5veauI/AAAAAAAAC08/PMH8J6Jl9z0/s400/s_groupobstacleavoid.jpg" alt="" id="BLOGGER_PHOTO_ID_5181361871774444258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Diploma&lt;/span&gt;&lt;br /&gt;Creating computer animated crowd scences for use in film, television and other media is an area, where traditional techniques used in computer animation can only be used with great difficulties. This paper deals with one possible approach for creating these kinds of scenes at relativly low expense: Behavioural Animation. A implementation model is presented, based on so called autonomous agents, their physical properties and steering behaviours. It is examplary implemented in the simulation software bugz, including an interface to the animation packages Maya 2.5, Lightwave 6.0 and Cinema 4D XL.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://www.kolve.com/thesis/Diploma_BehaviouralAnim_CarstenKolve.pdf"&gt;Diploma "Simulation von Gruppenbewegungen durch Verhaltensgesteuerte Animation"&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;       (Adobe Acrobat PDF, 547 KB, German version available only)&lt;br /&gt;     &lt;a href="http://www.kolve.com/thesis/bugz_umlclassmodel.gif" target="_blank"&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://www.kolve.com/thesis/bugz_umlclassmodel.gif"&gt;UML Class-Modell&lt;/a&gt;&lt;span style="font-family:Times New Roman,Times,serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_CXn820jLK7U/R-flLJveavI/AAAAAAAAC1E/cUE--5esCqI/s1600-h/s_seek.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_CXn820jLK7U/R-flLJveavI/AAAAAAAAC1E/cUE--5esCqI/s400/s_seek.jpg" alt="" id="BLOGGER_PHOTO_ID_5181361876069411570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Bugz&lt;br /&gt;&lt;/span&gt;&lt;span class="body"&gt;&lt;span style="font-family:Times New Roman,Times,serif;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;bugz is a standalone behavioural animation system. With bugz you can create autonomous characters, change their physical attributes and apply various predefined steering-behaviours (you can even change them over time by using so called "triggers"). Finally you are able to create nice looking crowd motions by simulating their interaction in a 2d-world. Besides pure viewing pleasure, the motion data can be used in a computer animation package (plugins are provided).&lt;br /&gt;       In case you are interested in source code, you'll find the code for the most important functions at the end of my paper.&lt;br /&gt;&lt;/div&gt;&lt;p class="body" align="left"&gt;&lt;span style="font-family:Times New Roman,Times,serif;"&gt;&lt;/span&gt;&lt;/p&gt;           &lt;a href="http://www.kolve.com/thesis/bugz.zip"&gt;bugz 1.0 win (ZIP 380 KB)&lt;/a&gt;&lt;br /&gt;incl. example simulations and import scripts for Maya, Lightwave, Cinema4D XL&lt;br /&gt;&lt;a href="http://www.kolve.com/thesis/bugz_manual.pdf"&gt;bugz User Manual (Adobe Acrobat PDF, 191 KB, English)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_CXn820jLK7U/R-flKpveatI/AAAAAAAAC00/gqn-K0gJetU/s1600-h/s_fish.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_CXn820jLK7U/R-flKpveatI/AAAAAAAAC00/gqn-K0gJetU/s400/s_fish.jpg" alt="" id="BLOGGER_PHOTO_ID_5181361867479476946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sample Animations&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;All sample animations were created using bugz, Lightwave 6.0 and Cinema 4D XL 5.0.&lt;span style="font-family:Times New Roman,Times,serif;"&gt;&lt;span class="body"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Times New Roman,Times,serif;"&gt;&lt;span class="body"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family:Times New Roman,Times,serif;"&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Seek-behaviour causes the bugs to align their orientation towards the specified target. If a bug continues to seek, it will pass through the target, then turn back to seek it again.&lt;/li&gt;&lt;li&gt;ObstacleAvoidance: Circle - Bugs try not to crash in the circle by checking if they'd hit in in the future and if so, steer away from the circle&lt;/li&gt;&lt;li&gt;Cohesion - Bugs with this behaviour will try to approach and form a group with other nearby bugs by heading for the average position of these bugs.&lt;/li&gt;&lt;li&gt;ObstacleAvoidance: Group - A example of a combination of various steering beaviours: Seek makes the bugs move in one direction, separation prevents them from crowding together, cohesion keeps the group together, obstacle avoidance helps them not to crash in the box.&lt;/li&gt;&lt;/ul&gt;&lt;object height="350" width="425"&gt;&lt;embed src="http://www.youtube.com/v/Iq57C_Yg8mc" type="application/x-shockwave-flash" height="350" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;Bonus: Fireflies, Flies, Fish - All the bonus animations are examples of autonomous agents seeking (moving) targets using the MothSeek behaviour, which causes a bug to move around a target in elliptical paths, much like a moth seeking a light bulb.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;object height="350" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Nq6ZfiCTyWM"&gt;&lt;embed src="http://www.youtube.com/v/Nq6ZfiCTyWM" type="application/x-shockwave-flash" height="350" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3897053759909235984-6749962665529078632?l=kolve.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kolve.blogspot.com/feeds/6749962665529078632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3897053759909235984&amp;postID=6749962665529078632' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/6749962665529078632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3897053759909235984/posts/default/6749962665529078632'/><link rel='alternate' type='text/html' href='http://kolve.blogspot.com/2008/03/simulating-crowd-motion-using.html' title='Simulating Crowd-Motion using Behavioural Animation'/><author><name>Carsten Kolve</name><uri>http://www.blogger.com/profile/05136878708199088359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp0.blogger.com/_CXn820jLK7U/R-fTIZveasI/AAAAAAAAC0s/YgmJsB_n5DQ/S220/IMG_9293.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_CXn820jLK7U/R-flK5veauI/AAAAAAAAC08/PMH8J6Jl9z0/s72-c/s_groupobstacleavoid.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
