December 30th, 2006 .
Yesterday I added a new node to Blender’s compositor: Displace. It works very similarly to Shake’s iDisplace node, pushing pixels around based on an input vector mask, and is useful for all sorts of things like doing hot air distortion, quick and dirty refraction effects in post, and so on. The full documentation is in the commit log, I guess I’ll have to tidy it up for the release notes.
One curiousity of this one is the technique used to code it. Most of the code logic was done using Blender’s Python Image API, as a means of quickly testing and prototyping. Python is a lot slower at the actual processing, but it’s a heck of a lot quicker to test than having to compile Blender each time. I recommend it!
You can download the prototype script/.blend file if you’re curious (just press Alt P). I then ported to C, which is relatively easy to do for simple image processing code like this, and changed a few things around. Previously in the Python version I had to try and come up with my own not-too-bad antialiasing code, though I’m sure what I came up with has been done before and has a nice technical name or something In the C version I was able to use some nicer image sampling code that Ton used for the awesome Map UV node. Incidentally, I also used the same Python prototyping technique for the UV test grid option when creating new images in Blender (.blend file).
Quick demo video: hot air distortion
Greyscale input, displacing in one direction (node setup)
2D vector input (normal map), independent (more accurate) X and Y displacement (node setup)
December 27th, 2006 .
Last week, my ADSL2 modem bit the dust and until my ISP sends me a new one, I’m disconnected from the net – I’m posting this from an internet cafe. Of course, thanks to the christmas/new year break it’ll probably be a while before I get connection back again, so if I take a while to reply to email etc, that’s why, and I apologise!
Hope you’re all enjoying the holidays, see you back online soon.
Edit, a few hours later: Scratch that, I arrived home and there was a nice working modem waiting for me. Yay!
December 5th, 2006 .
When I worked on adding tablet support to GHOST, Blender’s low-level input system (alongside Nicholas Bishop and Andrea Weikert who did the X11 and Windows versions), one thing I had in mind was the possibilities not only in the obvious painting and sculpting, but in other more experimental areas too. I’ve got a few ideas sketched down about potential uses in the interface, for example imagine sliders that changed in precision depending on tablet pressure, or a radial menu that uses the tablet tilt information to bias what option is selected.
A tablet, especially one that supports tilt sensitivity like the Wacom Intuos, is almost a poor man’s 3d input device. With X/Y location, pressure and tilt, you can derive a lot of information about the pen’s situation in 3D space. This is interesting to me, because unlike real 3D input devices like spaceballs (which I don’t own), many CG artists have tablets, so input methods involving a tablet can involve a much larger audience than the more obscure devices, and so investigating it doesn’t feel like such a waste of time :).
Anyway, the idea came to me that Blender’s built-in game engine could be very useful as a quick, interactive means of testing these different ways of interacting with a tablet. Over the weekend I had a hunt through it’s unfamiliar source code, and hacked together a patch that adds pressure and tilt support to the game engine’s mouse sensor (available here). It exposes these variables through Python and works very similarly to the way you currently get the mouse’s position, with three new functions: getPressure, getXtilt() and getYtilt().
So of course I had to do a first test! This one is very simple, just visualising the pen 3D space as a virtual pen over a virtual tablet surface. I mapped the pressure to the ‘height’ of the pen along it’s own local axis, and the tilt data is changing the orientation. Watch the video I recorded on a digital camera and see for yourself! The .blend file for it is here, but you’ll need to build Blender with my patch for it to work.
After doing this I’ve got a few more interesting ideas for things, such as FPS-style mouse navigation with the tablet but with tilt controlling other things like roll or turning around, or perhaps a marble madness style game where you use the pen to tilt the surface that the marbles roll around. I’m now also curious to combine this with my PowerMate for some really interesting interaction. Let me know if you have some other ideas that could work too!
November 22nd, 2006 .
Yesterday I found out about a new website called CGSphere. The premise is simple, take a sphere on a grid background in a CG application and interpret it in some creative way. It reminds me of one of my uni projects called small square book, in which we had to make a square book with 50 pages, with each page having a different image based on the idea of a square, linked together in some consistent theme. I really enjoyed that project, and the fun of trying to be inventive within limitations, so I posted my first CGSphere today.
It’s an homage to El Lissitzky, one of the Russian Suprematists / Constructivists, and his famous image Beat the Whites with Red Wedge from 1919. I really love that kind of art, and luckily had the chance to see some of the originals by Malevich, Lissitzky and Rodchenko in the Russian museum a few years ago. Anyway, this is just my small tribute
Update: I made another one.
November 16th, 2006 .
Unless I’m mistaken and you, my readers, are extremely interested in selling me viagra and car insurance, I’ve been suffering from an increasingly bad blog comment spam problem, and it’s been getting a lot worse lately. Most of this is due to being stuck on an old version of Movable Type, which has very poor spam prevention. I’d been planning for a while to move over to WordPress, which I like a lot more and have set up many times before (including on elephantsdream.org) but had been procrastinating for a while, worried about the changeover process.
Today, I finally cracked and exported this blog over to the new system, which went surprisingly smoothly. Most of the work took very little time at all, while tweaking the template to get it working just right took a little bit longer. Luckily WordPress isn’t written in Perl, like Movable Type is, so when I ran into a limitation in the templating system, I could actually understand it enough to hack together a simple plugin to do the job. Hopefully everything should be working smoothly and you won’t even notice a difference, though I’m still working on a solution to keep old links pointing to the right pages. If you notice something that’s obviously messed up, please let me know! cheers.
November 3rd, 2006 .
I’m back in Sydney again, after arriving yesterday with surprisingly little jetlag. Previous times I’d been to Europe, I’d been a total zombie for the week after, but I suppose thanks to a fortuitous combination of travel times and aeroplane seating arrangements, I’m feeling pretty good. My time away was rushed and brief, but still very interesting.
After only arriving in Europe the night before, Blender conference came and went very quickly, it was great to catch up again, with the general Blender crew and of course the others from the Orange team (except for poor Basse, who was stranded in Finland after an airline strike :/ ). Some very well produced videos of the proceedings, including our Making Elephants Dream presentation, are available on Google Video and BitTorrent, with hopefully more to come soon.
The day after the conference, Bassam and I shot over to Antwerp in Belgium to teach a 4 day Blender Workshop at the HISK, a high-end fine arts college located in a gorgeously run-down old military hospital. I was a little uncertain at first, not knowing much about the expectations and abilities of the students, including an audio installation artist, painter, sculptor, and others, none of whom had done any 3D before. By the end of the workshop though, things were going very well. We wanted to give the students more breadth of tuition than depth, so even if they weren’t instant experts, they would know what possibilities exist in Blender for them to integrate with their work, and they managed to keep up very well with the huge amount of information that was given to them day after day. By the end, most of the students were quite comfortable in getting around and starting to use it for practical work in their projects, one of them already connecting up the game engine with his audio applications based on a Python script we found on the web. So all in all, very successful and seemingly fun for everyone.
Immediately after the last session on the last day, we went out for a quick dinner, then Bassam and I jumped back on the train to Amsterdam. In the remaining day before we left, we hung out with Ton and researched and brainstormed improving Blender’s walkcycle animation tools. The results are impressive already! Bassam headed back to the US, and I set off for home, but rather than doing the whole 20+ hour flight in one go, had arranged to stop over in Tokyo overnight. With only about 4 hours to spare, I went strolling around Harajuku, Aoyama and Shibuya, dropping in at a few interesting places around the area.
Anyway, on the flight home, I did some experiments in the Blender Outliner, partially inspired by the expectations and real-world usability testing of the HISK students. Click below to see a little work in progress teaser video of the sort of thing that I’m getting at. The drag and drop stuff might take some time before it gets in a state ready to be committed to CVS, though. There are some structural issues in other areas of the code (that I’m not too confident with) that should probably be dealt with first.
October 22nd, 2006 .
Just a brief update, I’m sitting in the side room of De Waag in Amsterdam on the third and final day of the 2006 Blender Conference, waiting to give my next artist tutorial session. Having a great time as usual amidst the late nights and jetlag. Most of the presentations I’ve seen have been interesting, and they should be appearing as video downloads soon, for those who couldn’t be here.
Bart and the others from Blendernation are here, doing a great job covering the event with video reports and interviews already online, and there’s also an excellent live video stream coming straight from the main theatre floor. I wonder what sort of nonsense has been recorded coming out of my mouth, for the world to see…
October 17th, 2006 .
I’ve had several people contact me about my radial menus design and proof of concept for Blender that I showed here a couple of months ago. Progress on it had come to a standstill, while I was waiting for a limitation in Blender’s input system to be overcome. Previously, it wasn’t possible to detect in Blender if a key other than Ctrl Shift or Alt was held down, which meant that the fast menu selection method of holding down a key temporarily could only work when bound to combinations of those keys, and not most other hotkeys used in Blender.
Jean-Luc ‘lukep’ plans to work on improving this area of Blender when he works on refactoring the low-level input events system in Blender, and I’d put the menus on hold until this happened. However Jean-Luc’s project is large, progress is slow and it will take some time until it is completed.
So for my own sake and for those curious people who would like to give it a whirl, I wrote some temporary code to work around that problem, and now the radial menus are working on any hotkey, as they should. I also found a way to allow more than 8 items per menu, which was missing before. This is still a bit sketchy on enormous menus like the mesh specials menu, but that’s really a usability fault in Blender more than the radial menus – the specials menu is a badly organised dumping ground for tools that’s clunky to use and getting messier each release. This particular problem should be solved at its root.
Anyway, having said that, I’ve finally made a patch for you all to try, sitting in the patch tracker. Keep in mind it’s still a little rough around the edges, but hopefully you should find it interesting. If you make a testing build, I’d appreciate it if you could post a link to it in the comments here, so others can try too. Cheers!
October 12th, 2006 .
I spent a long time deliberating over whether I would go to the 2006 Blender Conference or not. My bank balance has been pretty unhealthy recently, and as great as it would be to see everyone and be a part of the excitement again, I wasn’t sure if I could afford to travel halfway around the world or not. I came to the last-minute conclusion that it’s going to be pretty tight and not really affordable, and that even so, I would go anyway!
Apart from the real reason for the conference, being around all the others, eating, drinking, discussing, brainstorming, I’m going to be giving a couple of pretty informal talks on the Friday – ‘Making Elephants Dream’ with the others from Orange who can make it, and also a lighting and compositing workshop with Andy Goralczyk. I’d like the keep both of them pretty informal and fun, the latter more about nifty tips and tricks, like in my previous curves session.
Straight after the conference, Bassam Kurdali and I will shoot over to Belgium for a week, to teach a four day 3D course using Blender at the Flanders Higher Institute for Fine Arts in Antwerp. This should be very interesting and challenging, though not new – we held a series of one day courses during our time at Montevideo in Amsterdam. The students are a group of fine artists who are looking for ways to integrate 3D technology into their work. I’m very happy to be able to help them with this, and curious to see what they come up with.
September 19th, 2006 .
During the last disconnected weeks, I finished cleaning up and putting together some footage for my demo reel. Now, it’s online here at mke3.net/reel. Do go and check it out, I hope you’ll like it.
And yes, I am looking for work
September 12th, 2006 .
It’s interesting how productive one can be without the constant distractions of the internet. I’m alive and well in my new place and enjoying it a lot, but thanks to incompetent phone companies I’ve been disconnected from the net for the 2 1/2 weeks I’ve been here. Hopefully I’ll be back online within the next couple of days, so sorry if I’ve been a bit out of contact, I’ve got a huge backlog of emails to get through.
Apart from cleaning up a demo reel, some coding and of course unpacking, the other day I did a little test of the in-development multi-res sculpting tools, currently being constructed by Nicholas Bishop, who’s doing a sterling job as part of Google’s Summer of Code. I’m using a build that’s about 3 or 4 weeks out of date, but even so, it works very nicely already.
Although it doesn’t have many of the features and speed of an application like Zbrush, at least from my experience in both apps, it’s quite competitive for a lot of purposes. The tight integration of the sculpting tools with the rest of Blender is a huge plus – being able to step down from level 7 to level 4 subdivision, use Blender’s UV tools to unwrap the mesh and having the UV layout propagate up to the higher res surface is just fantastic. At the rate things were going previously, I wouldn’t be surprised if the current development version is a lot better, too. This little test below took an evening to sculpt and another day or so for the remaining stuff like lighting, skin shader, colour and bump map painting. My poor little Powerbook G4 can’t handle ungodly amounts of polys, this mesh being only 120k, but still the results are very nice, especially with a bump map on top, the old fashioned way.
August 17th, 2006 .
a[euro]c I think the editors at Blendernation.com are stalking me. Should I be scared?
a[euro]c Added curve shrinking/fattening to Blender, to help making tapered curves nice and quickly. Coming soon after I also added Mac tablet pressure support (there’s X11 support now too, still no Windows yet :/ ), Campbell had a nice idea about a freehand curve sketch tool that could support adjusting the curve taper radius with pen pressure.
a[euro]c Finally, after a few months of searching, my friend Julien, his friend and I have been accepted for a reasonably nice terrace in south Surry Hills. The location is fantastic and I spent the last couple of afternoons cleaning and fixing up my old bike so instead of sitting on buses for hours I can ride it around just like back in Amsterdam! Yay! Move-in date is slated for the 26th, lots of packing to do by then!
August 8th, 2006 .
There’s been the usual flurry of reporting around the Apple Worldwide Developer Conference keynote address. I watched the video this evening and subsequently found a few interesting tidbits that haven’t been mentioned that much in the big internet news, and I might as well post them here, this site being my insignificant outlet to the world
- I want a Mac Pro. Though I’m not too keen on buying upgrades for Photoshop and Illustrator just to run them natively on Intel. No, GIMP isn’t even close to being an option for me.
- Finally, we (well, Ton) can start work on a 64 bit Mac version of Blender.
- Although nothing was said about it in the talk, there’s an ominous, and positive RSS Feeds icon in the new Mail. Unfortunately they still have the horribly ugly, hard-to-differentiate and inconsistent blue bubble buttons, ugh. Oh well, I use Mail Fixer anyway.
- They made Mail even more bizarrely inconsistent. Note the non-standard arrow-button-less scrollbars on the note view (in the video here) and on the stationery pane. I don’t mind the new style at all, but choose something and stick to it, for crying out loud! Note: Yes I’m aware that Blender is worse, having two types of scrollbars, both weirder than Mail’s here. I’ve got other things to work on now, so pay me and I’ll fix them
- There are some interesting looking icons in the dock on the Xcode preview page. One’s Xcode, one’s Dashcode, one seems to be a new Interface Builder, but I’m not sure what the one with the green A is.
- The new Dashboard ‘Web Clips‘ feature looks mind-bogglingly great. Such a simple concept, but very original, and well implemented. But what on earth is up with that ridiculous black icon on Safari? How did Apple’s usually excellent UI designers let this crime against visual hierarchy and gestalt theory take place? The back/forward and stop/refresh buttons are generally far more important to users, than Web Clips, and making that button stand out like a lacerated bleeding thumb, in colour, contrast, and style is a terrible decision. Leave the advertising of new features for the web site, not the UI!
- Although it’s utterly inconsistent with the rest of the OS, I really like the look of Time Machine. I think it actually works quite well presenting a clearly different view of the system, to distinguish against normal use, and besides, who doesn’t want a wormhole in their computer? People online have been wondering about disk space usage, but on the preview page it says “Time Machine only backs up what changes, all the while maintaining a comprehensive layout of your system”. I’m not sure if that means it stores changed files, or does diffing of files. Even so, at Orange when we used Subversion version control system to store all our art assets (mostly binary), the Subversion repository with all the revisions actually took up a fair bit less space than a full checkout, due to compression. So if they do something similar, Time Machine may be quite acceptable in that regard.
- The new Leopard server OS now comes with wiki software built in, which is cool. The icon is just lovely. I’m also curious to see what Apple have done to the Wiki interface itself, since MediaWiki and friends are still highly technical, somewhat clumsy, and have a lot of room for improvement. Who’s going to make me a nice Wiki that uses contentEditable, eh?
August 3rd, 2006 .
Right now, some of the Orange and Blender contingent are living it up in Boston at SIGGRAPH 2006, the premier Conference/Festival/Tradeshow for the digital graphics industry and community. This year, we’re lucky enough to have a booth on the main tradeshow floor, the ‘Open Source Pavilion’, shared with people from other open source graphics projects like Inkscape, GIMP and Verse. The booth was sponsored by a few sources, but largely by an extremely generous private donation. We’re right there in the trenches just next door to Houdini and ZBrush.
Unfortunately I’m not there myself, I really wish I was. But the next best thing is the fantastic video blog coverage that Bart from BlenderNation is producing each day. It’s giving the event a great feeling of community involvement, so do go and check it out and see some of the faces behind the internet aliases!
July 29th, 2006 .
Rarely does one see a truly funny, biting and original Australian satire, but ABC TV’s The Chaser’s War on Everything is most definitely one. After previous experience from their satirical newspaper and other TV shows such as The Election Chaser and CNNNN, they’ve been producing War on Everything for about 6 months now, and I’ve been following it very closely.
The team is ever vigilant in exposing and revelling in the absurdity of our society, media and public figures and don’t shy away from offending people or getting themselves arrested in the process of getting their points across. Parts of it seem similar to what I’ve seen of the Daily Show in the US. Some of the humour would be lost on non-Australians, but hey, it’s just started being offered as a free weekly download, courtesy of our most excellent national broadcaster. I’m not sure if previous episodes are going up there, but there are clips on the website, and full episodes in *cough* other places.
Another video podcast I’ve been catching up on is from a show that aired on SBS a while back is Speaking in Tongues. It features John Safran (ridiculous Jewish satirist of Race Around the World and John Safran vs. God fame) and rambling elderly social activist Catholic Priest, Father Bob Maguire discussing all matters bizarre concerning religion. The pair also have a radio show on JJJ radio which also has a free podcast. Anyway, the video podcast is here, free and courtesy of my tax dollars and the wonderful SBS TV.
July 20th, 2006 .
Here’s another comp test in some of my experiments with cekuhnen in the blenderartists forums. It makes use of a simple Combine RGBA node, which I wrote the other day. It doesn’t exist in Blender but a patch is available in the tracker. Without that patch though, you can replicate the functionality using a slightly convoluted node network. This technique basically takes three different versions of the refracting material, with slightly different indexes of refraction, then adds them back together in the different R/G/B channels. I’ve blurred them slightly with a mask taken from the sphere on another render layer.
It doesn’t hold up too well in close up since you can see the three different layers quite sharply, rather than a smooth blend – for that you’d need more IOR layers. I also tried doing this in material nodes too, which would be a much better approach, however the way raytraced refractions is handled there seems to be a little bit weird, and it didn’t work out. Hopefully in the future this can be cleaned up, perhaps with specific raytracing nodes that output RGB or alpha or whatever.
A .blend file