Friday, December 31, 2010

End of year ramblings...

It's that time of the year again... the end of another year! And what an eventful year it has been.

In many ways, it could be described as the year of the disasters:
- Christchurch September 4th Earthquake (whose aftereffects are still being felt today - quite literally) and Haiti's January earthquake
- Worldwide air traffic brought to a standstill twice (the Finnish volcanic eruption and now heavy snow)
- Miners being trapped in mines around the world, including the 33 Chilean Miners who were successfully rescued after several months underground, and the 29 Pike River Miners here in Greymouth whose bodies sadly still lie within the mine

But, this has also been a year of great new heights:
- Sintel, the third Open Movie Project was finally completed and released
- Blender 2.5 moves ever closer towards being a stable release (including a little bugsquash sprint effort by yours truly this afternoon to bring the bugcount back down towards 50)
- Bullet Rigid Body physics can now be set up within Blender's viewport and run in realtime, with control using "effector" force fields - at least in a branch, thanks to my GSoC work this year
- The birth of several new open source projects, including Duality SVN (which you'll hear about a bit more in the new year!)
- Me learning a bit more about photography, culminating in buying a DSLR, and thus spelling the start of the end for all the neighbourhood birds!

Well, that was 2010. Now bring on 2011!

Happy New Year all!

Playful Silvereyes...

Wow how time flies. And if time were a bird, then it would be playtime!

The poses here are very similar to some I've seen in other people's collections, though I personally prefer the ones in my previous posts more.

Monday, December 27, 2010

[Animating in 2.5] Getting to grips with Keying Sets

Over the past few months, I've been observing quite a bit of confusion over some aspects of the animation system in 2.5 that's all related to "Keying Sets". These are a rather important new feature aimed at improving the animation workflow, but which many people don't seem to be aware of. So, if you're wondering why you're getting a "weird" error message when trying to insert keyframes, or if you'd just like to learn some new workflow tricks to make animating easier, read on :)

[Rigging FAQ] Constraint Spaces Explained

While working on a bug report today, I remembered that the "space conversions" stuff for constraints (added during my 2.45/2.46 Constraints Refactor) often seems to be a point of contention for some (many?) riggers.
This will be a brief guide to the various spaces and how they relate to each other to hopefully act as a starting point for further investigations by yourselves.

[Side note: I'm trying to get this out between aftershocks here, so apologies in advance for anything that isn't clear]

Sunday, December 26, 2010

Just when you think it's all over...

From last night till the time of writing this post, we've (Christchurch residents) been reminded once again of the power of Mother Nature.

Even before heading to bed, there was already a little gentle shake... something that felt like one of those 3.4-ers or less.

Then at around 2am this morning, there were 2 "rapid fire" shakes: small-ish but still scary considering that it was dark (like that first one that changed everything), and that the second one occurred mere minutes after the first one had started settling down.

Falling asleep after the shock of these two was hard. Were these shakes the precursor for more seismic activity overnight? Is there going to be a third one any moment now? Questions that had long fallen silent after over a month without any major shaking began swirling around in the darkness, hovering over my bed like a swarm of impatient flies and mosquitos...

Saturday, December 25, 2010

Festive Silvereyes

Following on from my success a few days ago, I had another go at taking snaps of the silvereyes as they dined on the berry-tree again this morning. This time it was a trio of silvereyes, though I think I only managed to photograph one of them.

I particularly like these two shots as they seem to be the most in focus. However, it's a pity that leaf was still in the way!

Seasons Greetings

So, it's that time of the year again, so here goes...

Merry Christmas and Happy New Year everyone!

I was planning on trying to release some projects in time for a Christmas Eve release, but it seems that being on holiday is a bit more fun at the moment. So, stay tuned... and have fun!

Thursday, December 23, 2010

Silvereye success at last!

I've got a few posts about the things which have been keeping me busy (and rather silent here) recently in the pipeline, but this afternoon I was very excited to have managed to finally get some shots (albeit after some cropping) of the silvereyes which are my favourite this year...

Oh yeah! The branches are a bit of a pity, and a longer lens would've been nice (it's all the more painful to think that one was sitting in a locked glass cupboard just 2 blocks away ;)), but finally a decent full-body shot.

But, just wait till you see the next shot, then come back and observe this one again ;)

Saturday, December 11, 2010

Recent Macro Experiments

So, it's been a while since I've posted any macro photos here, so here are some recent ones...

Bumblebees on bottlebrush (or pohutakawa, or rata) flowers. Ever since I first saw such a photo several years ago, I've been trying to take one "better" than that (it was great, but I felt that it could've been a bit better still). For the record, this isn't it yet (this is a bit OOF), but the sharp eyed out there may have already noticed that this is the photo in the background of the screenshot in this post.

SVN Quick Tip - Enable AutoProps...

As part of work on Duality SVN, I've been periodically reading the SVN redbook and other SVN documentation to find out how to get SVN to behave in ways that I like most so that my tool will make things significantly easier for myself in the long run.

Today, while working on adding files, I noticed an option: "--auto-props" that can be used in conjunction with svn add. From the documentation, when set, this will automatically add SVN properties to files based on some pattern-matching magic.

Friday, December 10, 2010

The Handle-Type Hotkeys Debate

Today there were some changes to the hotkeys for setting the handle types for keyframes and also for standard curve editing back towards the old 2.4x style keymappings. While I admit that the implementation in the Animation Editors was a bit clunky - namely, the menu being a bit unwieldy/ugly - the key benefit of this approach over the old one was that the handle-type hotkeys were now accessible in a logical + consistent grouping.

Therefore, I think this brings up a very natural point at which we should re-evaluate how we're doing this. As I see it, both ways have their pros and cons, though perhaps we need to be looking for another (better) alternative still!

Wednesday, December 8, 2010

Duality SVN - Self-Hosting Milestone Reached

Today has been a very productive day. 
Today is also a very important day.
Today Duality SVN became self-hosting.

Duality SVN in action, preparing to be used to commit some changes to it's SVN repository. It can also be used to update the working copy from the SVN repository, allowing for the basics of day to day collaborative development work already. Hence, as of this morning, it has "self hosting"! ;)

Monday, December 6, 2010

Duality SVN - Gathering momentum

Things have been getting a bit quiet here over the past few days, so let's dust off the cobwebs here!

Over the past week, I've been slowly working away on getting the Duality SVN UI up and running. Unfortunately, things have been going a bit slower than hoped (so this post does NOT announce the first public release as tentatively advertised before), as I ended up getting stuck for a few days trawling so-so documentation (and dissecting example scripts) before finally figuring out the necessary code to get a few core components working. In particular, most of this work all just went towards...
The "status list" widget.

(NB: The colour of the "external" status indicator is something I'm still playing with. I've been trying to get it as invisible as possible using the "predefined" colours as I really don't care about such entries much. Anyways, on second thought, the yellow seems to be a bit too loud still, yet grey makes it too similar to "Unversioned" which I want discrete yet still visible. Hmm...)

Friday, December 3, 2010

Not all "pedantic" compiler warnings are made equal

IMO, "pedantic" compiler warnings are for the large part evil. Or at very best, very very annoying in most cases. Just like lawyers seem to find some kind of masochistic satisfaction gleaning over twisted nests of spaghetti-legalese clauses, picking apart code so that it is totally "semantically" correct is just an picky exercise in tedium and pointlessness unless something is going wrong.

Without further ado, let's look at some "pedantic" warnings which I think should be considered harmful to resolve - that is, DO NOT CHANGE CODE THAT CAUSES THESE!
DISCLAIMER: you may need to research your compiler's documentation to identify which warnings equate the the ones being referenced here.

Thursday, December 2, 2010

In a little pickle...

A little Garfield figurine sitting in one of the side cups of my new desk. After so many years of trying to find one, I finally had a nice graphics/drafting desk (i.e. one of those that you can angle), which are so much more comfortable to use than standard desks.

FollowPath Changes - 2.55 onwards

Recently I've been seeing quite a few complaints/confusion regarding some of the changes made with the FollowPath constraint and Path Animation in general in 2.5, in particular, since 2.55. So, if this sounds like you, read on!

Sunday, November 28, 2010

Recent Photos of Note - Early Morning + Twilight + Fireworks

Over the past few days, the days seem to have been getting longer - it's still kindof bright at 9pm, with some rather interesting light at this time. Here are some highlights from these shots...

The strange "greyish blandness" (Katherine Mansfield describes this kind of light quite well in one of her short stories IIRC) at twilight.

Abstract "suggestions" of light. These were simply OOF shots of the power guard on my laptop's power cable ;)
Some of the items damaged during the earthquake and subsequent aftershocks!

Saturday, November 27, 2010

Duality SVN - First Sneak Peak

After a bit of deliberation, I've decided to release an little teaser for a little side-project I'm working on at the moment. Please be aware that this is still a WIP design, with a few things that I've already tweaked/added since when this screenshot was made.

This is the current UI design - version 3 to be precise - of a little SVN client/frontend that I've been working on. It spawned out of my frustration with regard to current SVN tools, especially in terms of branch management, which lead to an idea for trying to (hackily) get the best of both worlds.

Thursday, November 25, 2010

Post #100 - Quick Action Management Tip

Yay! According to my sidebar, this marks my 100th post on this blog. 

The real topic of today's post is to answer a little question regarding managing Actions - that is,
How do you change/remove the Action used by a datablock?

Wednesday, November 24, 2010

F-Curves, Keyframes, and Other 2.5 Animation Bits and Pieces

In continuation of some of my earlier FAQ posts (#1 and #2), I'll be discussing a bit about various aspects of the 2.5 Animation System here, especially related to keyframes and F-Curves.

Tuesday, November 23, 2010

Turning the gears of change - mingw update

For the past few months, I've been compiling Blender using MSVC+scons, as some change(s) made broke the final linking with mingw+scons. Unfortunately, the change in question was causing an "internal error" in the linker, which was not a good sign.

Today, I finally got around to trying to install a new version of mingw with a newer version of gcc (version 4.x at last on Windows... half a decade later!). As I reported in the post linked above, last time I checked on the mingw site (over half a year ago), it was an utter shambles - hosting troubles every few days and little consistent clarity over the actual latest version available. That included no clear postings stating whether gcc 4.x was finally usable, available, and obtainable from where.

Friday, November 19, 2010

Bugfixing - Node Tree Design Rant

Argh! Stupid Node Trees!

I've just been doing some work on a bugfix related to animating material nodes. As it turns out, I've seriously misunderstood how the node trees are stored, leading to some "interesting" consequences...

Thursday, November 18, 2010

The Silvereyes Have Landed

After a long wait, the first of the silvereyes have started appearing in my garden at last!

My first shot of the season. IMO it's not the "best" shot that I'm looking for, but it's a nice start.

This was taken through the net curtains, as I didn't quite have enough time to safely set up everything before this one arrived, and I'd managed to scare away another one from a window twice as far away minutes earlier. But next time I'll be more prepared, and hopefully get a much better shot.

Tuesday, November 16, 2010

A More Detailed Deconstruction of C++

Today while checking my inbox, I found a very cathartic link:

Cheers to "Wolfgang Draxinger" for this.

It's like a more detailed version of my own list. I'm in complete agreement with every point it mentions. No wonder we have so much buggy software out there!

Monday, November 15, 2010

Ducklings Extravaganza

The weather over the first half of the weekend was really nice, that it would be a shame if I didn't try to take advantage of it and take some more photos. However, since the silvereyes have still not showed up in my garden within lens-range as the bottlebrush is still not totally flowering yet, and I was sick of seeing or shooting the blackbirds which have begun to rule our garden, it was time to take some more duck (and specifically duckling) photos!

These were some of my favourite shots, but there were some other cute ones...

The Beauty of Flying Fish

Taking some time off (away from computer) today, as well as dodging some "aftershock" activity (it's been quiet most of the week, but starting late last night, the ground got back to business...), I stumbled across a little documentary from the BBC about marine life in the South Pacific and "greeny" concerns about the effects of commercial fishing while waiting for the news.

Saturday, November 13, 2010

Bullet SoC - Doing the SVN Dance - Part 1

In order to start work on this project again, especially on Point Cache support, I figured it was time to grab a more up-to-date Blender trunk to work from, since many things have changed there AFAIK, not to mention in a few other places too.

Friday, November 12, 2010


Phew! It's been quite hot here over the past few days, ~26 deg C, and predicted to get up to 27 (i.e. more like 30) tomorrow.

This morning, I woke up early and saw the following on the spiderplant in my room...

F-Curve First Aid - Identifying and Medicating "Disabled" F-Curves

One of my items on my todo list for ages has been dealing with the problems associated with F-Curves with "data paths" (a way of referring to the property that a F-Curve affects) that can't be "resolved" correctly, and are thus tagged as "disabled".

Finally I've had time to work on some experimental measures for dealing with this, and I'll use this post to discuss these changes. The commit for reference sake is #33008.

Wednesday, November 10, 2010

Exams Over + Other News

At long last, exams (and thus the uni year) are over at last! Yipee!

So, this means that I finally have time to work on various projects again. Including...
  • Completing the Bullet Integration work
    • Baking and Scrubbing (Pointcache support)
    • Checking on Ragdoll support
    • Rigid Body Constraints
    • etc.
  • Making another attempt at the Manipulators API
  • Finishing off loose ends in 2.5 Animation System
  • A few other coding projects that I won't reveal yet

Sunday, November 7, 2010

Waiting for the Silvereyes...

Finally exam season is drawing to a close (just 1 more to go! :)

During this time, I've been taking a good look outside the window everyday, watching as the bottlebrush (slowly) gears up to bloom. As I learnt last year, not only does the flowering of the bottlebrush signal the (imminent) start of summer, but it also marks the fleeting time of the year when the "silvereyes" visit my garden in droves, and most importantly, just outside the window, within eye- (and lens-) sight ;)

These small birdies are small (sparrow-sized) and have a distinctive greenish colour, with white rings around their eyes. Their visit last year piqued my interest in photography, as trying to get a shot of one or more, let alone a decent-looking shot was a real challenge! It also informed my criteria for getting hold of some better equipment (fast autofocus + shot-to-shot times to not miss them in interesting poses, the absolute essentiality of a comfortable grip, and the need for zooming to be able to be done with the other hand instead of being a control just behind the shutter-release (which is perched on top of the camera body)). That said, I suspect I still need to get hold of a longer telephoto lens still...

Hopefully this year I'll be able to get some great shots of them in action.

Tuesday, November 2, 2010

Sintel DVD

In the mail today...

Yay! Off to watch the extras now (and the film again on the tv this time) :)

Thursday, October 28, 2010

User Contributed Bullet Demos...

It's great to see people going out and playing with my SoC work. Keep them coming! :)

Aligorith Blender Branch - Bullet Integration from Everton Schneider on Vimeo.

In 2 weeks time, I should start to have time to get back to work on this at last. But first, it's back to work on the upcoming end of year exams...

Saturday, October 23, 2010

Clarifying the Animation (NLA) Workflow in Blender 2.5

Over the past few weeks, I've been quietly observing that people are finally starting to actually give many aspects of the animation system in 2.5 a good thrashing, and making feedback about the general state of affairs. Interestingly, this is coming some 8-10 months after when I was really keen on hearing such feedback and/or generally sitting around wondering what ways to best tweak the system. As things go, I now have a bit less time to work on many of these tweaks for another few months at least, with many exciting projects and coursework having sprung up in the meantime.

Nevertheless, it's good to be hearing these discussions at last. With some interest, I've been staying out of discussions to generally see how long it would take for "eureka!" moments to occur, when one or two users finally figure out the intended design as it should be (and is), and hopefully come to the conclusion that actually the situation is better (or significantly) than before. Indeed such moments have occurred, though in some corners it still seems to be taking a bit longer for this to happen.

So, to those who've been venturing out into the field, curiously probing and making new discoveries about how it all fits together and the implications of the new workflows, congratulations on making it this far! For everybody else, I think it's time that I shed a bit of light onto a few of these topics to help ease the journey.

Spline IK - Looking back one year...

This evening, I finally settled down and tracked down a Spline IK bug report dating back to January (!) this year. During that time, I've kindof gotten "busy" with other projects and stuff in general, not to mention starting to get a bit tired of bugfixing around the middle of the year (which really made it hard to try and track down any bugs, let alone this one, which I'd already tried a few times to crack and failed to fix at the time).

"The Bug" eventually succumbed to one of my favourite debugging techniques, and one which almost everyone who has debugged something before will try: strategic data dumps (also known as printing the values). I know that some people advocate that clever use of debuggers is better practice than modifying the code with prints everywhere. However, IMO going through putting in prints in strategic places and only printing out data you think is going to be of interest is actually a slightly superior technique, as the process of adding these means that you revise the code figuring out where checks for errors should go and also only selecting the information that is potentially going to be enlightening, means that you're putting yourself in the "right headspace". I also find that doing this saves recompiling debug symbols for entire projects and/or is sometimes the only weapon against certain bugs in code that ends up being a pain to step through without setting breakpoints too sparse or too dense.

Anyhow, fixing this bug reminded me that it's been a year since I introduced this feature to Blender. So, I thought I'd share the story of Spline IK's development...

Tuesday, October 19, 2010

Blender 2.5 Settings

Ever wondered what user-prefs some of the Blender devs use? Looking to make some tweaks to your copy of Blender to make it work nicer? Read on for more...

Monday, October 18, 2010

Monday is Duck Snapping Day

Seeing as I had some time this afternoon, I wandered over to the Ilam Homestead to take some more duck photos, especially those of some ducklings. And I wasn't disappointed!

"Walk the walk, quack the quack. We copy-duck what our mummy does and says"
My favourite shot of the day. Now that I'm starting to get familiar with this camera and some of the settings, I started trying to get closer than I had done in previous encounters. Of course, mummy duck was a bit worried, but not that much as these ducklings aren't that young + vulnerable now I'd like to think.

Sunday, October 17, 2010

All assignments done... time to macro!

It's been a chaotic week: 1.5 (messed up) days working fulltime (and overtime) hacking frenzies to finish a software engineering group project (including redesigning + reimplementing the GUI for this, along with fixing bugs that kept cropping up and managing the team at the same time), 24 hours out from the deadline!. This was soon followed by doing writeups and last-minute fixes for a series of four other assignments due in succession over the next few days... phew!

But, at last, all assignments are now finally done for the year!

And what better way to relax, than to spend the weekend doing something completely different...

My favourite of the three...

Sunday, October 10, 2010

More quake damage, flowers, and shots from out and about

It's hard to believe that I've been using my camera now for a month now. I'm still getting to grips with which settings work best for certain situations, but am now starting to get a good feel for certain sets of settings for certain subjects. For example, what's useful on overcast days in moving vehicles (aka typical travel scenarios)... for which burst-speeds and AI-Servo AF are really handy... hehehe

Having heard that they had finally decided to pull down that tall+elegant brick tower/office block that had been badly damaged during the quake, I took a trip downtown today to take some last shots before it was history. So without further ado, here are some of my favourite shots of the day/week:

The old "Manchester Courts" building on the corner of Manchester and Hereford streets. Soon to be demolished.
For this shot, I got off the car, and walked right up to the fence; the closest I'd gotten to it for ages, as the road blocks extend about a block away each side of the building. It's really a shame to see this old beauty go, but seeing how the bricks were all sheared off in staircase fashion in places really puts things into perspective.

More Java Bashing...

Over the past few weeks, I've had to do some coding for some project in Java. As I've already mentioned before, there are heaps of things that I don't like about Java. Today, I'll be expanding on this list, in light of some things I've run into in my latest project.

Tuesday, October 5, 2010

Christchurch Earthquake - One month later

Wow... it's hard to believe that a month has already past since the September 4th Earthquake.

For most of us, life is pretty much back to normal, though for precautionary measures, most of our ornaments and wall hangings are still stowed away safely under tables and places where they wont fall and shatter again. However, as a recent drive around downtown reveals, there are still quite a few businesses that remain cordoned off; I pity those business owners in this situation, and those whose stores have been completely obliterated. Sympathies also to the people still stuck with portaloos in the middle of the road.

And perhaps as a one-month anniversary gift, Mother Nature just released upon us a series of strong aftershocks. All had been quiet for nearly a few days now, with the aftershocks dying down in frequency, though the intensity with which they are felt always seems to be increasing (though official reports only ever list them as tiny 2.8's). Lulled into a sense of normality, slumped in front of the TV, and all of a sudden... rumble rumble QUAKE!

Sunday, October 3, 2010

C++ Yuckiness...

Following up my dissection of Java ages ago, here's one on C++ (as promised to Moguri a few days after that post a few months ago ;)).

In short, what's wrong with this language: lots.

Friday, October 1, 2010

News roundup...

This is a bit of a mixed-bag post; there have been things happening around the place to ramble about.

1) My first attempt at food photography (this photo is quite literally the first shot of food I've ever taken, with some PP to make it look even tastier):
I guess you could call these potato fritters or so. It's potato, spring onion, egg, and salt. I like salt.

2) Yesterday afternoon, there was suddenly a knock at the door... it was the FedEx delivery man!
Thanks Google! My SoC T-Shirt and Certificate arrived at last :)

3) Last but not least...

At long last, "Sintel" has now been released online :D

If you haven't seen it already, what are you waiting for? If you have, why not watch it again ;)

Thursday, September 30, 2010

Thoughts on Changes to "Give way rules" on NZ Roads... (A rant on NZ roads)

I remember that a few months ago, they debated looking into these changing the so called "Give Way" rules on NZ roads. Back then, I thought they said they were giving up the idea for "quite some time" still. Fast forward a few months, and bang!

The main changes are the following:
1) At a "straight through" intersection, where one car sits in the middle of the road to make a big right turn through the oncoming traffic, while the other one takes a small left turn around the corner, the left-turner gets ROW (right of way) under the new laws.
2) At a "T-bar", the car in the straight turning into the side road will have ROW instead of the car sitting in the side road under the new laws.

Wednesday, September 29, 2010

svn + ssh - A good tutorial for getting rid of those pesky prompts

Recently for Uni, I've been working with a SVN that only works with ssh login (the darned thing will ONLY accept a svn+ssh path), which inevitably leads to password prompts all over the show, every single time you do even the smallest of procedures with svn.

Having done this a few times over the past few days, I became increasingly frustrated with this status quo. Researching this a bit, I read quite a few tutorials which described ways to get around this, but the one I liked most is:

Thanks to this, I now have a really usable setup for this now.

Tuesday, September 28, 2010

Sintel (Durian Open Movie Project) Premiere

After a year of work, it finally premiered. The third Blender Open Movie Project, codenamed Durian, premiered earlier today in Utrecht, the Netherlands.

Unfortunately, I haven't been able to attend this event due to various commitments. However, I can say that I have seen a version of the film ("pre-premiere screening" copy), but I'll keep quiet on any details about this until the online release in a few days time.

In the meantime, what I will say is that although I can totally understand the team's ultimate choice to choose this as the poster ("to show more drama"), I'd personally have gone with one of the more traditional alternatives instead ( - number 5, i.e. first one on second row).

Anyways, congratulations to all involved. You have done the Blender community proud :)

Monday, September 27, 2010

Duck Shooting Again

The weather today proved to be absolutely outstanding again, the ducks were out (loud and clear too) in force, so what a great opportunity to try a spot of duck photography with my 7D. Indeed, bird photography was the thing that got me hooked with taking photos of stuff, and, in lieu of a long telephoto + sporadically available subjects, duck shooting has been my main target in this area so far due to their size and ready availability.

So, armed with camera in hand, and having scoped out some clusters all morning without a camera around (I missed an interesting clash between a bossy magpie and a group of ducks, with two of the ducks being frightened off, but the last one holding its ground and quacking loudly until the magpie left).

Without further ado, let the pictures speak for themselves.

From Spring Ducks 2010
This is one of my favourite shots of the day. There are few more of these ducklings inside...

Sunday, September 26, 2010

Springtime photos from around town

After a week of assignment due date crunch (culminating in a 1 day dash to make sure everything was truly completed and submitted in time), it was finally time to take a little break. Especially with the nice weather in town over the past week and extending over the weekend, it was a great time to spend some time playing with my camera. Here are some of the highlights (though there were some even nicer ones which I won't be posting for various reasons)...

From Christchurch Spring 2010
This paddock of sheep is not actually that far out of town. In fact, it's in the middle of a suburb, beside a cemetery. The single sheep staring at the camera was the only one that didn't run as I approached the fence.

Friday, September 24, 2010

Implications of social media - Examining past footprints

From time to time, there is a wave of activity in conventional media circles (if you think about it, don't they frequently campaign on certain issues in periodic fashion before moving onto "the next big issue"), where they start talking about how people should be "more careful about what they post online", especially on sites such as Facebook, Twitter, etc.

Indeed, there is cause for concern here. What you and I upload is very likely to become entrenched in the web, copied to and from various servers, and butchered and re-posted at some later date. A key example are all those (IMO dodgy and annoying) sites that aggregate/copy/butcher articles from various wiki's and online encyclopedias that always seem to show up when using search engines. Frankly, it gets quite annoying when you end up finding the same (limited) article that appeared on Wikipedia being mirrored by 10 such aggregators, but which often appear as potentially new articles. Surely something more must have been said about a topic than a single Wikipedia article and several thousand unrelated pieces of advertisements.

However, what I really wanted to say here is that you don't quite realise some of the implications until you start seeing your own (long-forgotten) content/posts cropping up during a random search for something years after the fact. I'll admit that on a few occasions, I've done some random searches where I stumble across some posts I made on BA years ago, and think "Did I really write something like that?". Fortunately, I haven't really stumbled across an embarrassing post, but there is a really weird sensation reading stuff you wrote ages ago. Somehow it sounds familiar, and yet looks so darned foreign at the same time.

Now, as the "first generation" of users with access to this technology, creating content in these ways, it's kindof weird to think what will happen one day when our children start browsing the internet, coming across the digital footprints of their parents. Or what about grandchildren, if the internet has not collapsed or drastically changed form by then? Sure, past generations have been able to read diaries/journals and/or old newspaper clippings, but what they're now able to access dwarfs those in comparison.

Footprints are weird.

Wednesday, September 22, 2010

Coding Fun

Over the past few days, I've been busily hacking away at one of the assignments I've got for Uni: implementing programming language (new and/or familiar) features on top of a basic (read: primitive) language's parser/compiler.

Although the base code we got was initially quite hard to read (go out and have a taste of K&R C, with multiple statements on the same line as each other, hardly much indention or whitespace to be found, and use of integer constants all over, and you might be somewhat close to seeing what the code was like), I can say that I now understand most of it. That is, of course, after going through and coding a cleaned up version from scratch, only to have it backfire with a weirdo error I couldn't debug in time, and then cleaning up a second version of that source code.

Tuesday, September 21, 2010

[Rigging FAQ] Porting rigs from 2.4x to 2.5 - What you need to know

So, you've got an "awesome" rig that you set up in the old versions of Blender, and are now looking at migrating to 2.5. Will it still work? Are there any things you need to be aware of?

Saturday, September 18, 2010


From time to time, I'm reminded of some stupidity on the part of some of the software designers out there (aren't we all). The text editors that are fundamentally broken, and cannot handle tabs correctly (fortunately, there are many other functional alternatives out there, that work much better). The web upload forms that time out, and have ultra strict validation, or just plain buggy all the time.

But, that's not what's really inspiring today's rant.

Bullet SoC - Still researching the "brick wall" scenario + Potential Solutions

It's been a while since I've made an update on this project, so it's probably time that I did so. Last time I did, I was still investigating the making sure that "brick walls" could be simulated easily using the Rigid Body tools I'd put in place (including changes/improvements to the brick wall template).

Perhaps seeing so many crumbling chimneys, and fallen-away walls around the place in recent weeks has further highlighted the importance of being able to simulate this. And perhaps, indirectly, suggests a solution :)

Thursday, September 16, 2010

Spring has sprung!

Amidst all the continuing aftershocks (they had pretty much died out for a few days, at least while I was awake, but have tonight rattled the house several times over the past hour, twice rather violently and for a while) spring has finally turned on its glory.

I'm really starting to love this macro lens now that I'm starting to figure out its focusing tendencies and the beauty of shallow DOF, after keeping it on the camera for the past few days. Here are some highlights :)

From Macro Experiments (Sep 2010)
"Mummy and Baby". I got these two little birdies at different times during festive season sales (Easter for the big yellow one, and Boxing-Day for the pinkie), but it wasn't until after the big shake that I realised that putting them together looks quite cute.

[Rigging FAQ] Basics of the New Driver System in 2.5

Monitoring bug reports over the past while, I have noticed that there appear to be some misconceptions about the Driver system in 2.5. As usual, these seem to stem from trying to carry old Blender knowledge straight across to the new system, which inevitably, will cause some problems as aspects of that old system were backwards/fundamentally broken.

So, as will become a common phrase for you in common weeks: "forget the old, in with the new!"

This is by no means a fully comprehensive guide on the Driver system. There are some things I can't cover here, as they'd probably be fodder for their own posts. So, hopefully this guide is enough to highlight some of the main things that you should know about this system.

[EDIT 2011Jan03 - See the extra notes for this post here]

Monday, September 13, 2010

Matters of Code Indention - Tabs only please

The internet is a place where people can discuss various matters, in particular, the tale of two bitter rivals. There are: Ford vs Holden car enthusiasts, Canon vs Nikon photographers, JPEG vs RAW, Marmite vs Vegemite, AMD vs Intel, ATI vs NVIDIA, and emacs vs vi(m), to mention a few of the many such rivalries I'm aware of.

Of particular relevance to the last one is the issue of code indention: how much, and of what type.

Sunday, September 12, 2010

Christchurch Rebuilding - Photos from Out and About a Week Later

Over the past two days, I've been gradually venturing out, exploring Christchurch a week after the great earthquake, and taking photos of damage, cordons, and recovery in progress. I've just included some which give a fair impression of the overall situation, though aren't always the best shots I took.

From Christchurch 4Sep2010 Earthquake

Friday, September 10, 2010

Earthquake Theory

I must say that this earthquake has taught me quite a few things about them:
1) Earthquakes can be scary, especially when they're big and go on for more than 2 seconds. Previously, every "earthquake" we'd had would just be a 2 second wobble once a year or once every few years that'd hardly damage anything. But the longer they get, the greater the chance of damage + power/water cuts.
2) "Aftershocks" are pretty much full-blown earthquakes in their own right
3) Aftershocks are not small shakes that happen once every few days after the "main event". Rather, the earth underneath your feet is just in constant motion more than usual, and that rather regularly (aka minutes in the first 2-3 days, and hours during later days) this constant motion is more vigorous
4) Shallow earthquakes are nastier than deep ones. They feel more powerful, usually with "wide" swaying leading to things falling down.
To illustrate this for yourself, get a goldfish and put it in a large+wide+shallow mixing bowl and observe the way it swims around (my fish tends to like swimming around the rim quite rapidly, half-flattening his dorsal fin, and using the tip of his tail to create large vibrations on the water surface). Next, move the same fish over to a deep tank, and notice how movements "down under" won't affect the surface so much.
5) Standing up in stable stance means that you can't feel any of the smaller shakes at all
6) A good indicator of all types of shaking is the TV antenna, which shakes as soon as some of the more subtle shakes come in. Useful when trying to decide whether it's just your butt shaking, or the ground.
7) Water is not a very good indicator of shaking. It is actually not that sensitive to movement, especially the smaller shakes. Only violent shakes create visible displacement. Floating penguins in the water make interesting diversions during this.
8) After a big shock, your butt often "feels" like the ground underneath it is shaking. Perhaps it really is, and you're sensitive enough to feel it. Or perhaps, you're just starting to get nervous again.
9) Earthquakes are noisy. You usually hear one coming before you see or feel anything (in that order too). They have a low rumbling sound, which then combines with the sound of the house/building you're in creaking as it shunts sideways, followed by the sounds of stuff shaking.
10) It takes a few days, but eventually, you'll become almost desensitised to all but the larger shakes (usually the shallow but with lower magnitude ones), as you'll be sleepy enough to just sleep right through 12-3 aftershocks, some of magnitude 4.5 or greater, and 3.x's generally just aren't felt at all.

New Canon EOS 7D and Macro Photography

As I've mentioned in passing earlier, since a few days before the earthquake, I'm not a proud/happy owner of a Canon EOS 7D.

In a way, the earthquake came at a convenient timing with-respect-to-the-camera, as it does pose some interesting subjects to take photos of (once I can get out and about to do so safely, that is).

I've got the main things I was looking for:
1) fast + responsive digital camera (it's just about if not faster than the old film camera we used to use, before it was retired after film processing became prohibitively expensive/inconvenient, and the long-suffering zoom lens got arthritis which meant it couldn't retract "unaided")
2) comfortable to hold and use
3) manual control when I need it

Wednesday, September 8, 2010

[Rigging FAQ] Constraints and Rotations - What you should know

Just like the aftershocks here, it seems that everything seems to come in waves. Over the past week or so, I've been once again reading quite a few instances of people asking for help regarding working with constraints and rotations, and not quite getting the results that they were expecting. While the root cause of the problem is the same from 2.4x to the 2.5 series still, the 'remedies' I'm going to be suggesting here only really apply to 2.5 where things have been improved significantly to make such things bearable.

A brief warning that some readers may find some of the content here upsetting: there is a "little bit" of math involved here, but I'll try to keep it tame.

Terror Revisited

This morning, I was woken by another strong aftershock just before 8am, after having also experienced a weaker one just before falling asleep. These were quite a surprise after the eerie stillness/lack of shaking for most if not all of yesterday (during daylight hours at least), though by yesterday evening I getting increasingly anxious that another big shake was inevitably coming along as darkness enveloped the land.

Indeed, I was proven correct.

From Christchurch 4Sep2010 Earthquake
(This photo shows a pattern left on my desk by water splashing out of my cup during the aftershock. Eerily it looks like a stylised face in shock!)

It felt almost as bad as the initial quake, lasting 10-20 seconds I'd guess, shaking things off shelves around me and giving the computer table a good battering. Like with the initial quake, the power cut out instantly again (though was restored again after 15 minutes), and I wondered if this time the quakes had really taken their toll.

However, unlike with the first quake, this happened when there was some daylight around, which made things a bit less scary. No doors were dislodged this time (which was also quite a relief). Also, nothing was broken this time, with most glass/breakable objects having been placed on safer ground, and other items having been rearranged to be less likely to fall.

To illustrate the force of this quake, here are a few examples of things that got moved:
1) the fridge was moved backwards by about an inch, perhaps a bit more than last time
2) the printer was just about knocked off its perch, moving about 2 inches
3) a TV being moved backwards by 2cm (again)

Hopefully these aftershocks die out for good sometime soon (preferably sooner rather than later).

Tuesday, September 7, 2010

Resuming some normality...

Today I've finally started trying to resume work on all pending projects again that had been interrupted over the past few days.

Throughout the city, people and businesses are also trying to restore a sense of normality, with many people in non-affected areas returning to work today, bus services resuming soon, and parts of the CBD starting to open again. Certainly picking things up again should help in the healing process for the city, though some things will obviously still take time.

What has not really helped though are the aftershocks that passed through last night. After having had rather infrequent though still significant aftershocks for most of the day yesterday, we had a series of rather strong and violent 5 pointers just before midnight. These were quite unsettling, especially just around bedtime, and listening to the radio this morning confirms this, with many people not being able to fall asleep after this.

Monday, September 6, 2010

Aftermath of the quake...

It's been good catching up on some sleep this morning. The aftershocks today have died down quite a bit (in terms of frequency and intensity) which is certainly a relief. Also, the strong winds forecast haven't quite eventuated yet, though I am starting to hear them blowing outside now.

Looking back, I have to say that I'm impressed with the speed and effectiveness at which emergency services have managed to cope with the situation. Hats off gratitude to the linesmen and watersupply guys and gals out there for working so hard and getting our essentials up and running again so quickly. I seriously thought we were going to be stuck without these for quite few days still, which would've been quite nasty with the cold nights over the past while.

Saturday, September 4, 2010

Rattle Zone - A Black Day in Christchurch

It is 5:58pm as I write this post, having been up for over 13 hours (and counting) in a sleep deprived and increasingly paranoid state.

You may or may not have heard already, that Christchurch (my hometown) has been ravaged by a 7.1 quake overnight at about 4:35am this morning (September 4th, 2010), centered just ~30km from the city centre and at a relatively shallow depth of 10km. There has been quite a bit of property damage: many shops and buildings, especially in the CBD have been damaged, some to the extent where large parts have collapsed. Here we've gotten off a bit lighter, but with quite a lot of broken glass, displaced stuff, and paper/books soaked when water splashed out of the fish tank during the shaking. Fortunately though, there haven't been any loss of life arising from this major disaster yet.

Thursday, September 2, 2010

Holiday Assignments - Some *** time required

It seems that the job of a uni-student never abates until the exams are over - indeed, the term "term break" is really a misnomer the further up you get. At least the work gets more fun at the same time (usually) ;)

Wednesday, September 1, 2010

Conquering the wobbles - cosc atrium after dark

This evening I had a meeting in the department which ran a bit late. That is, after most people had already left (though there were quite a few active asian communities gathering in corners) and the skies were getting dark outside.

A perfect opportunity to take some snaps of the department atrium with full lighting (and without being disturbed)!

From Uni Snapshots

Tuesday, August 31, 2010

Go Blogger!

Yay for the newly added "Comments" and "Stats" tabs to Blogger (i.e. this blog's hosting platform). These are two tabs I've been been hoping would show up at some point. Yay!

On the downside though, I wish something would be done about the unreliability of the "Compose" WYSIWYG editor, which has a few glitches which are starting to get to me. So much so, that quite a lot of the time, I've picked up HTML again for creating the content here :)

Monday, August 30, 2010

Why I dislike Java (and you should too)

The Java Programming Language really doesn't have much going for it, apart from having been a favourite language for use in academic environments (in particular for undergraduate teaching) over the past decade or so. Having been forced to use this a few times for a few projects, I have to say that it has a few really rather-inexcusable traits for most practical usage.

Thursday, August 26, 2010

Bullet SoC - Experiments, Fixes, and More to Come...

So, the official GSoC 2010 period is over now, but that does not mean all coding activity on this project is stopped for good.

Leading on from where I left off last time, I've been conducting some experiments and tweaks with the "Wall" template, implementing some ideas for this that I didn't have time yet to do and investigating how to improve the stability of this asset in actual sims.

Tuesday, August 24, 2010

Code Refactoring...

It seems once every few months I need to go into "fixit" mode, especially everytime after taking a break for a few days. Today I've just finished fixing Keying Sets after they've been broken by batch-renaming madness again for the second time in as many months. Grrr!

This brings up an important point: "Code Refactoring" != "Code Redesign"

Monday, August 23, 2010

Deja Vu Strikes Again - Some more Blender 2.5 FAQ's

Following on from my previous set of Blender 2.5 FAQ's, here are some more FAQ's that are now cropping up (or that I missed from the original list). Enjoy.

Saturday, August 21, 2010

Regular service resuming soon...

After a week of rather frantic hacking, collecting experimental data (thankfully all via computer vs the hassles of experiments in the physical domain, but still there was some tedium there and all done in a rush), and writing and rewriting reports, assignments crush is now over (for a short time at least). Mid-semester break to the rescue again!

From Ilam Homestead

Wednesday, August 18, 2010

Build Systems in a Rush - A Quick Recipe for SCons (C-Code Compiling)

In general, I like using SCons more than makefiles. Why? Well, the following 3 points are a big drawcard:
  1. It's files are based on Python. So no funking around with yet another ancient/archaic shell language
  2. SCons works nicely (as a 1-step process) on a Windows computer once installed, without needing special shells or whatnot. This practically knocks out CMake (it's a two-step process, which ends up creating makefiles or msvc projectfiles, both of which have their downsides) and standard mingw-makefiles (which I cannot ever seem to get running without using a special msys shell, and/or other arcane invokations) 
  3. Being able to show simplified progress info instead of blurting out compiler commands every time (i.e. "Compiling XYZ" vs "gcc -o afkhaf aghaffoof.c -lfghj -lagfhkja -akfha -Wah -Wajgh -aekfh -laksighf-lajfhjf -alkhaf- lakghaf- -lajigfb -lafgjh..."). Sure, this is doable with makefiles too, but it seems that everytime people do it there, it needs more environment variables to be set. Meanwhile with scons, we can easily turn it on/off with command-line options. No wonder so many people miss and ignore compiler warnings, leading to some very weird bugs in their code (also a factor leading to the issues in a previous post).
Despite this, at times I have resorted to using one of my home-brewed py-scripts to just compile some simple stuff when I've been too lazy to read through the SCons docs to get things done (or when there were some problems which I couldn't fix in time).

Fortunately, this time it didn't happen, so now I think I've finally got a reasonable scons template. The template included here is what I'm using to compile the code for one of my assignments, btw.

Tuesday, August 17, 2010

Bullet SoC - Last minute goodie

Putting the "Construction Toolkit" back into "Bullet Construction Toolkit", I present:
Rigid Body Templates

 Templates can be accessed from the 'Add' menu (Shift-A)

Ultimately, the intention behind these is to allow you to quickly add a set commonly-used of Rigid Body setup to your scene. That is, setting up such a setup would otherwise be quite tedious, as you'd need to create several objects, or similar.

Monday, August 16, 2010

Bullet SoC - It's not over yet...

The official SoC period is quickly drawing to a close, coinciding with the weekend before a raft of assignments are due. The weather over the past two days has been equally dreary (as assignment death marches go)...

Wintry Weather

Unfortunately, this has meant that I haven't had time to make a few last minute tweaks I'd have liked to do "within" the official timeframe. However, rest assured that I'll be working on those again under a hopefully clearer frame of mind in a week's time.

So, as the saying goes, it's not over until the fat lady sings. Or in this case, the code is in trunk and suitable for widespread consumption. :)

Friday, August 13, 2010

Graph algorithms are fun

I have recently rediscovered (yet again) the joys of coding graph algorithms.

It's been a few years since the last time I worked on some of them: for example, I "reinvented" DFS (depth-first-search - I didn't really know about this concept at the time) as part of an implementation of a graph representing a set of possible chord progressions with weights/probabilities that a node should be randomly visited, to be used in a automated music generator.
Consider the nodes
Walk along spanning arcs
Lost in traversal
Maybe one day, I'll release that library of them that I've been building up. Then again, it means someone else might not have this fun themselves.
And day by day the monster grew,
byte by bite,
y wiser too.
IMO, graphs are one of the most versatile (and useful) data structures out there. Since practically every other interesting data structure is practically a sub-case of graphs, they're my favourite data structure.

Tuesday, August 10, 2010

Happy Birthday to Me!


Monday, August 9, 2010

You know your software is bad if...

Here is a list of traits of (mostly) modern software, which are not a good sign and/or contributing to our eventual downfall.

Bullet SoC - Squashing those bugz

I've just been doing a bit of a bug-squash sprint tonight, dealing to a few reported issues which have lingered in this branch for a while. If you've been finding any bugz in particular, please test with a recent version, before reporting on here.

Saturday, August 7, 2010

Bullet SoC - Winds of Charge

After a bit of a development hiatus due to some unforeseen troubles in trying to get the Manipulator API up and functioning (as of time of writing this, they still haven't been resolved), it's time for some new cool stuff and updates here again. So while I'd have liked to get the Manipulator API finished during/as part of this year's SoC, it looks like it wasn't meant to be...

Thursday, August 5, 2010

Google Wave - Victim of HCI's "Uncanny Valley" or Just Another Failed Software Project?

It seems that Google's decision to discontinue Wave has been has been making the waves (excuse the pun). Why did this happen to a product that was promoted as potentially being "the next big thing"? A product whose tech demo wowed the world, and had people clambering to get their hands on an "exclusive" invite to give it a test run themselves?

Here are some of my thoughts about some of the factors that contributed to it...

Sintel T-Shirt

In the mail yesterday...

Tuesday, August 3, 2010

Tips for Editing Animation in 2.5 - Part 1 (Selecting Keyframes)

Having been asked about some of these things by various animators over the past few months (including members of the Durian team, and teams America and Argentina who also participated in this and other prominent projects), I thought I'd mention in passing some of these tips which may hopefully speed up your animating workflow in Blender 2.5.

This (should be) the first of a few posts dedicated to this topic.

Monday, August 2, 2010

Duck Shooting Season

From Ducks 2010

It's a pity that these ended up a bit OOF (out-of-focus) + some camera shake (though not as bad as sometimes, as is usual for this P&S camera)

Saturday, July 31, 2010

Seriously good music...

Somewhat ironically, it's only in the past year or so, since I've really put an end to my violin-playing career (DipABRSM, LCTL distinction, FTCL, a winning or reaching the finals of numerous competitions) that I've started listening to much music at all. In particular, I've taken a liking to doing this while coding!

So, without further ado, here's a list of some of my favourite music (currently). As you'll find, most of these are orchestral sound tracks, which I should add sound best at full blast (though I usually only have them at somewhere between 10-40% loudness most of the time) ;)

Friday, July 30, 2010

Thoughts on Functional Programming Languages

As part of a course this semester, I've been learning a spot of Haskell, one of the "pure Functional Programming Languages" out there. What follows are some thoughts on this style of programming, from the point of view of a somewhat battle-hardened Imperative (C/Python mostly) programmer.

Thursday, July 29, 2010

Deja Vu No More! (Blender 2.5 FAQ)

Every few months I seem to be answering the same series of questions again and again and again and again and again... It's time to fix that with a link I can just refer people to ;)

Oh, and hi to all PlanetBlender visitors now viewing the feed of my blog (as of the past few days)

[EDIT 30JULY-2pm] Added a few more FAQ's that I've missed.

[EDIT 23AUG] Part 2 Posted...

Around the University

As today was a relatively "light" day, I decided to carry around a camera to get some shots as I walked to/from campus. I'd been planning to do this for a while, and will probably do this again soon as I didn't quite get some of the shots I'd been wanting to get (lighting conditions not right, or intended subjects not around!)

Here is a little montage of some of the better shots (though they're really only snapshot quality this time):

Sunday, July 25, 2010

How time flies...

Wow... another week has passed... and it's now the end of July! That means the daffodil's will soon be coming out, if snow or frost don't get to them first.

The first time I noticed was on Wednesday (or was it Tuesday), when for whatever reason, I thought it was still the 18th (it was the 21st)! Eek... then again, I never professed to being too good with remembering numbers (har har har)

SIGGRAPH 2010 also should be starting today, but it seemed that it was always 3-4 weeks away still... I mention this, as I remember Erwin from Bullet/Sony-Imageworks(?) saying that he'd be interested in doing of demo of the Blender-Bullet integration during his Bullet/Collision course. It's a pity that once again I couldn't make it yet (if only semester 2 started 3-4 weeks later ;)

In other news, this Manipulator API is starting to take a bit too long to finish! Grrr... but hopefully it'll be ready soon.

Monday, July 19, 2010

Macro photography is fun...

A few crops from some macro shots I took on Saturday in my backyard.

From Around Home

From Around Home

It's amazing what a little bit of creative cropping and curves editing can do... that and what interesting (and somewhat creepy) specimens you can find everywhere if you spend some effort to look ;)

Bullet SoC - A Guide to choosing Collision Shapes

As promised in my commit log for Triangle-Mesh Collision Shapes, here is a brief guide (with demonstrative videos) on choosing collision shapes when working with Rigid Body simulations.

A few bugs showed up (and most but not all were fixed) during the course of the video recording process, so the initial commit of this functionality may not be sufficient to reproduce these videos.

Sunday, July 18, 2010

Debugging scons+MSVC-compiled apps using MSVC debugger

In a follow-up to this post, I've now found a way to make debugging with MSVC easier (or more palatable)...

Friday, July 16, 2010

Scrollwheel Zoom - Did the pioneers get it wrong?

Almost everybody who has used a 'modern' computer with a 3-button mouse, which has the traditional left and right buttons as well as a scrollwheel wedged between these (which also doubles as the 'middle mouse button'), will/should be aware that it is possible to use the scrollwheel to 'zoom' in/out the view to get a more detailed look or broader overview of the artifact being viewed.

On most applications, you need to hold the CTRL key while rotating the scrollwheel up/down to do this (as simply using the scrollwheel does vertical - falling back to horizontal if no vertical scrolling possible - scrolling of the document). This is quite a straightforward operation once discovered, and something you'll probably never really pay attention to ever again once you figure out how it works.

What (if any) then is the problem with it?

Thursday, July 15, 2010

Recent adventures with gcc in the land of Windows...

In recent weeks, I've been mainly confined to using my MSVC compiler setup to compile Blender, leaving me by and large without a easy-to-use and readily-available debugging environment. A change or set of changes (which I haven't been able to track down yet, but which were probably related to work to upgrade some precompiled-libs we use) suddenly started making ld (gcc's linker) to start refusing to do the final linking of the binary, as it'd fail with some internal error.

However, tracking down bugs in the bugtracker (for 2.5) is a bit more challenging without a working debugger to pinpoint where segfaults are coming from. Thus began the quest for a potential "upgrade" to my trusty mingw setup to hopefully get it back working...

Doh! Glimpses of enlightenment...

Don't you hate it when you work on the wrong file and keep wondering why something didn't work?
While doing another round of bug-squashing on 2.5 this evening, I was trying to debug a crash but every attempt at debugging the problem didn't improve the situation. Even the most trivial and blatant of test checks was failing! Just when I was about to call it a day, and go back to my SoC work, the glaringly obvious cause stood out: I had been editing the file from my SoC branch not the 2.5 tree. (Idiot moments += 1)

[Edit: It looks like the Durian team were also inspired to post about some of their moments... heheeehe]

Moving on to something a bit more relevant to SoC/Bullet stuff now...

Monday, July 12, 2010

Bullet SoC - Rome wasn't built in a day...

... and neither was the Manipulator API or some of the other targets I've been working on going to be easily solvable within the space of a week.

A few quick rounds of status updates:
  • After discussions with Theeth, we now have version 2 of the Manipulator API design.
  • Coding of this has been in progress over the weekend, though this is taking a bit longer as...
  • A new term at Uni starts again today :(
  • Bullet Constraints work is going "back to the drawing board". There are some issues I need to think over again here (not to mention running into some really shabby stuff along the way)
  • Dupli-instances... grrr... if only there were an elegant way to handle these...
Hopefully there'll be some more interesting updates to come later this week... (fingers crossed)

Wednesday, July 7, 2010

Bullet SoC - Monkey Business

Just a quick video update (only one this time):

Mesh collision shapes can now be used. While it's still more efficient to use the basic primitives instead for most cases, these certainly do come in handy.

I'm currently pondering whether this should be the default mode to give more immediacy for most cases, at the expense of users needing to work harder to fine tune their results. This way, we could give some of the other 'auto' modes in other software a bit of a run for their money (literally) ;)  Comments?

Tuesday, July 6, 2010

Bullet SoC - Manipulators API Design...

I've been planning this for a few months now on and off, and even decided to try to fit this in as part of Bullet SoC work. I figured it would work quite well in furthering our goals of creating a Bullet Construction Toolkit, since visual tools are potentially more natural to use in the long run.

So, without further ado:
Presenting the Manipulators API Design Doc

Barring a need for significant re-architecturing, I'll start trying to implement this tomorrow, and hopefully there'll be some cool stuff to look at soon afterwards.

Monday, July 5, 2010

Bug Squash Monday

After weeks/months of not having time (and an element of procrastination!) I've set out on a bit of a long overdue bug-squashing crusade.

Obviously I've been mainly focussing on bugs within my domains of expertise, which include the animation system and some UI-stuff (excepting the spaghetti-events + internals of the widgets there). Some of these bugs have been lurking for far too long too...

Despite closing quite a few (rejecting or properly fixing them as necessary), the open bug count has stayed at some kind of taunting equilibrium: 347 bugs open! It seems that the time it takes to slay a bug is enough for one or two eager bug-hunters out there to come up with another 1-2 reports!? Bah...

Anyways, I'm off to slay a few more bugs now. Regular work on Bullet-SoC will continue tomorrow.

Saturday, July 3, 2010

Blender Tips - Video Recording

As promised, here is a brief overview of the (current) way I'm putting together the video demos of my Blender SoC project.

Friday, July 2, 2010

Bullet SoC - Heads 're rolling [Updated]

After a few days' work, I think it's now time for another round of video updates :) Artifact 4 - Animated properties and simulation controls Artifact 5 - Rolly-Polly: Collision shapes Artifact 6 - Pong! Recording animation live from the viewport (using realtime transform recording feature), and seeing live/realtime physics feedback including collisions while recording. Update (July 3rd, 5:30pm): new video now available after some bugz were squashed this morning In response to some viewer comments, I've slowed down the videos a bit (both times recorded at 10fps; last time video apparently used 10fps, but this time I've set that to 5fps). I've also had to make some changes to my video-making pipeline to make the files more manageable. There'll be a post with the specifics of this process tomorrow.

A little distraction...


I just had to get a shot of this cute little fella. (Yes, this is an orange...)

Thursday, July 1, 2010

Bullet SoC - Stay tuned...

Just a quick note that I am preparing another nice set of updates on the current status of the tools. I've got a few (hopefully interesting and tasty) demo videos planned for then which I was going to record today. However, while rehearsing these, I found a few bugs which will set things back another day...

Tuesday, June 29, 2010

Bullet SoC - From the trenches

I've spent most of yesterday trying to track down some of the various problems afflicting the simulation system to little avail (as mentioned in an earlier post).

What is becoming apparent is that navigating (and trying to understand) Bullet's API is becoming quite an exercise in itself at times. Through this process, I'm really starting to appreciate the extent that C++ can be used to obfuscate the meaning of or the ability to easily find code to understand it. Furthermore, I still don't think that doxygen/javadoc-like tools are totally up to the task of improving this situation a lot of the time, but serve to introduce their own layers of complexity into the situation (* details to come in a future post when I get around to it).

Sunday, June 27, 2010

State of UI Toolkits - Part 1

I'm sure that many people who've attempted to ever set up small-scale and cross-platform UI app will have encountered the inevitable problem of choosing a suitable UI Toolkit to use. And it's not like we don't have many choices either with popular systems such as:
  • QT
  • wxWidgets
  • GTK (and derivatives)
  • Java AWT/Swing
  • ...
to chose from, though there are many more that also work but which I have not listed here. But this is only the start of the troubles you'll face...

Bullet SoC - Thou (still) can't turn back time...

I've started working on and committing the new C-API for interfacing with Bullet into my branch at last. At the time of writing, I've finally replaced the old API calls with the ones from the new API.

Everything that worked before seems to work still. Also, all the hack to force resetting of simulations now seems to be working, while it didn't before. Yay! (Note: it's still really a hack still, since we should be able to do this by just stopping playback, or jumping back to the 'start frame' for the sim... but at least that should be easy to fix soon).

Unfortunately, despite now using MotionStates, I still can't seem to get reverse playback working (which is necessary for allowing normal 'scrubbing' of the timeline). There is some movement in the right direction, but it only happens once and then stops. This was not the case when I tried doing this in the "Hello World" demo in Bullet srcs. Is it to do with the sizes of the timesteps - i.e. do I need to specify max timesteps/substeps? Or am I screwing up the way the MotionStates update?

If anybody reading this is familiar with Bullet, some suggestions/help on fixing this would be appreciated :)

Friday, June 25, 2010

Bullet SoC - Work continues...

Just a quick note here that I'm currently busily hacking away on the next piece of core architecture necessary to get the Bullet integration more functional. While I haven't been able to work on this much this week, this should be ready in the next few days.

Among the functionality this should enable are:
  • properly functioning playback - the extent to which it appeared to work in the videos is a bit of an illusion, but still tempting
  • adjustable (and potentially animateable) gravity
  • changeable settings (including mass and collision shapes)
  • a better framework for dealing with more settings/controls as necessary
  • ...
Plus, there will be a few more demo vids too, and maybe a few surprises... we'll see ;)

Anyways, enough talk for now, and more code... over and out.

Tuesday, June 22, 2010

Exams, Catastrophic Calculation Errors, and Assignments....

This week has been busily spent sitting exams (over halfway there now), studying for exams, and occasionally a short spot of coding.

Today I had another math exam, which I think went quite well... that is, if another bout of 'catastrophic calculation error' didn't plague my script, and (at the time) 'magnificent' answers turned out to be complete and utterly misguided efforts (like some of the attempts at goal in the Soccer World Cup). We can always dream...

Oh, and I finally got back my HCI Assignment - an essay evaluating the "Ribbon" GUI in MsWord - for which I got 100% for! Yeeeehaaarr!

Monday, June 21, 2010

GSoC 2010 Welcome Package

Today I've finally received my GSoC Welcome Package at last!

Quicky snapshot of contents from laptop webcam for convenience, with minor PP to look less crappy.

Saturday, June 19, 2010


Recently I was sifting through some photos on my computer, and finally decided to upload some of the better shots for the world to see.

These were taken with one of two cameras: a Canon camcorder (the bird photos and some of the lower-res shots) and an Olympus Point and Shoot. I should point out that at this point in time, I'm not particularly satisfied with this set of equipment...