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) ;)
Saturday, July 31, 2010
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...
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):
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.
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.
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?
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...
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...
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:
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...
Wednesday, July 7, 2010
Bullet SoC - Monkey Business
Just a quick video update (only one this time):
http://vimeo.com/13143533
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?
http://vimeo.com/13143533
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.
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.
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
http://vimeo.com/13029755
Artifact 5 - Rolly-Polly: Collision shapes
http://vimeo.com/13031113
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
http://vimeo.com/13051630
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.
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...