Back from Qt Dev Days (Munich)

Development, OGRE, Open Source, Travel 5 Comments

qtBefore 2009, I’d never set foot in Germany before; not for any particular reason, I just hadn’t gotten around to it yet. However, thanks to gracious invitations to conferences I’ve now been twice. :) In May I went to Stuttgart for FMX, and last week I went to Munich for Qt Developer Days.

It was an enjoyable conference, as always the best part is just meeting other delegates, the sessions themselves are merely the icing on the cake. I shared my presenting slot (in which I showed a couple of applications that use Qt and Ogre together) with two other open source veterans from projects which I have a huge amount of respect for: Bill Hoffman, CTO at Kitware and the founder of CMake (which of course we use in Ogre now, so it was great that I had chance to have quite a few discussions with Bill), and Jean-Baptiste Kempf, Chairman of VideoLAN which is of course in charge of the excellent VLC.

It was also nice (not to mention flattering and somewhat humbling) to have random people I’ve never met before spontaneously say nice things about Ogre. One of the major curiosities of open source is that you never really know quite how many people have encountered & used your software; you get a sampling of that through your community forums etc, but it’s also clear that that only represents a portion of your user base. On the day I was wearing my Ogre T-shirt I had a number of people who were more peripherally involved in the community but who had had a good experience with Ogre, and were more than happy to tell me about it. Definitely a good feeling.

Perhaps most surprising of all though was getting a sizable donation to Ogre in person from a community member while I was there (I won’t mention who just in case he’d rather not be identified, he can post in the comments if he’s happy to). We had what I thought was a theoretical discussion at one of the dinners about how much we get charged by PayPal for donations, and I’d said that although it’s undesirable, any kind of electronic payment mechanism has a cost (merchant accounts, bank transfers all come with some kind of charge). I jokingly said that the way you’d avoid the most charges would be mailing cash in an envelope, although that had it’s own risks. I thought nothing more of it, until I saw him the next day when he presented me with an envelope with a donation in it! Way more than I expected too, enough to push him straight to a Platinum sponsor. Turns out he’d just got his deposit back on a flat he had been renting, and decided to donate that to us in the absence of any code contributions, since Ogre had helped him at university and subsequently in getting a job. I have to admit, I was a little lost for words at that! His donation will definitely help cover the server running costs in the coming few months.

Back to the conference subject, Qt, the conference reinforced my opinion that it’s the best cross-platform UI system out there for C++ developers. It was great to see the range of applications that were being developed on it these days, including a coffee machine which was serving custom beverages in the dining area via a Qt interface. Obviously the Nokia acquisition has meant that they’re keen to move into more dynamic, touch-based interfaces too now, which will obviously power new phones in more interesting ways, but it was clear that they remained committed to a huge range of application targets. Well, except iPhone anyway, that was definitely the elephant in the room – occasionally mentioned but mostly avoided ;)

Obviously Qt’s switch to LGPL this year will have a huge impact on adoption rates. One of the things that had concerned me though is that there’s a clause in the commercial license for Qt that requires you to decide between using the commercial license and the LGPL before you start developing. The reason given for this is that Qt is licensed on a per-developer basis, so if you could wait until deployment to choose the commercial license, you could scale back your team and pay less than you really should have done, which is why you have to decide up-front. I could understand this argument, but in my experience, perfect foresight is impractical and conditions can often change, so making a once-and-for-all choice before a line of code is written did not seem realistic in some cases. Also since the principle was that the entire team must use the same license, I was wondering about the practical implications of say, a commercial outfit leveraging some pre-written code by people using the LGPL version (such as QtOgre). Qt want to encourage greater community involvement (which was the reason for me being invited to the conference after all), so not allowing this seemed to go against the kind of broader adoption they were chasing.

To try to answer these questions, I went to the legal presentation and put this question to the speaker afterwards. Luckily, she mostly allayed my fears on these two issues. On the ‘circumstances change’ issue, the principle must remain that, because of the per-developer licensing, you should make your decision up-front, but if for whatever reason, and in good faith, conditions change (such as suddenly having to target a platform where LGPL is not practical), then some kind of agreement can be reached, such as by paying commercial fees for all developers historically on that project so it comes out the same as if you had opted for the commercial license originally. In addition, she didn’t think there would be a problem with community code re-use for commercial licensees provided this was mentioned during the commercial licensing process; she accepted that greater adoption is what they want, and community development inherently complicates the previous assumption that one team will be responsible for absolutely every aspect end-to-end.

So, a good conference overall. Now, I’m back to continue work on Ogre 1.7.

Yay, OgreSpeedTree 2.0b is done

Business, Development, OGRE 9 Comments

I’ve been pushing quite hard to get this done before I head off to Qt DevDays next week, and luckily it all came together in the last few days:

Some of the notable back-of-the-box (if there was a box) items:

  • Upgrade to SpeedTree v5 – supporting all the great new features. See the SpeedTree site for more details on this release.
  • More lighting options – Ambient Occlusion, Ambient Contrast, Specular Lighting, Transmission Lighting, Global Light Scalar, HDR.
  • Improved LOD fading – LOD transitions are now implemented via less perceptible techniques thanks to SpeedTree v5.
  • Dynamic soft self-shadowing via depth shadowmaps – (was also demonstrated on SpeedTree 4.2 in OgreSpeedTree 1.1.0)
  • Improved alpha to coverage support – alpha to coverage rendering has been significantly improved and is now enabled by default (you must render with at least 2xMSAA to see the effect), resulting in significantly smoother foliage edges and smoother fade transitions.

I’m just really, really glad to have got this done. SpeedTree v5 was quite a big change to handle, but hugely worthwhile, the guys at IDV have done a great job. I made the choice from v1 to do a ‘deep’ integration (ie all objects are first-party Ogre objects, everything uses Materials and RenderQueues properly, etc), which made the transition considerably more time consuming than using the higher level pass-through interfaces, so this took some effort. I like it this way though, it means it’s a ‘real’ integration as far as I’m concerned, not just a simplistic bolt-on.

There’s still more to do, not least of which a demo that’s more interesting than just a technical performance test :) But at least I can tick off one of the major things on my TODO now. I’d been putting in quite a few extra hours to try to handle this, and my Qt presentation preparation, and Ogre, and consultancy, and it has taken its toll a bit – I’ve been spending more time at the desk and think that was a contributing factor to me straining my back at the gym last weekend. Hopefully that’s just temporary, I’ve been a lot better these last few months.

Hope you like the shots anyway. I know, I’m pimping them all over the place in my Twitter, here and on the Ogre site, but a guys gotta make a living, right? ;)

My evolving view of open source licenses

OGRE, Open Source, Personal 35 Comments

smallprintI’ve been involved in open source for a long time – probably what might be considered a ‘generation’ in this industry. I was a fan of open source before I even knew the term existed – during my formative coding years in the early 90’s I was always releasing code for free and encouraging people to tell me why it sucked, and doing the same for them. Of course, most of the discussion went on over FidoNet, BBS-relayed emails, the very early (pre-WWW) internet and code on FTP sites, but the principle was much the same.

It was only when I needed a host for an increasingly large 3D engine I’d been writing in 2000 (which later became the earliest version of OGRE) that I discovered Sourceforge and open-source licenses. At that stage, I didn’t really care much about the minutae and just went with what seemed the most popular choice – the GPL. Fairly soon after this was revised to LGPL because it was clear GPL wasn’t a flexible choice for a library. Over the years I formed the opinion that the LGPL was a good balance for what I was doing – it allowed use in proprietary applications but required that modifications to the open-source part were passed on; and this also, I thought, encouraged contributions back to the core since it’s simpler to have your changes promoted. The downside was that the license is pretty long and full of legalese, and frequently needed explaining & clarifying. Still, I considered that a necessary cost of a license that ‘protected the interests’ of the open source project. I had considered more permissive licenses like zlib and MIT to be too weak -  giving everything away with no conditions encouraging reciprocal contributions or participation.

I only really started to seriously question this long-held opinion recently, shortly after I had to deal with a license violation issue. The details of this are irrelevant (and will not be discussed here), the important thing is that after all the dust had settled, it really made me sit down and take a long, hard look at what open source licenses actually achieve in practice, and which bits I felt were the most important for sustaining my projects.

Purist free software advocates subscribe to the view that all software should be ‘free’ (as in speech), which is, when you boil it down, a philosophical principle. While the intention is often genuinely altruistic – enablement for all developers and users of software – in a practical sense it is also a highly prescriptive, black-and-white approach. Free software licenses like the GPL restrict as much as they enable, on the basis that not to do so would deny future users of the flexibility to alter the software. It’s an understandable point of view, if very hacker-oriented, but it’s not one that I personally sign up to. I’m not involved in open source as a ‘movement’, in order to ensure that all users have access to all the source code of every application they use. Instead, I’m involved in open source because I think it’s a damn good way to get good software written for the benefit of the many, particularly infrastructural elements that can then be used to innovate faster, by smaller teams, to challenge incumbents, and generally shake things up. I’m a firm believer that open source and proprietary software can be good bedfellows, and that each can benefit the other – open source providing solid foundations for proprietary innovation, and proprietary software contributing to the open source projects underpinning it, in terms of code and funds. In that context, the restrictive elements of the LGPL seemed well-placed – the LGPL allows proprietary use, but modifications had to be passed on.

But, after much consideration and hard self-questioning in recent weeks I realised something important. Of all the people that have contributed to OGRE over the years, I can’t think of a single good code contribution that has come about because the license conditions encouraged it. All of the people who have made a significant positive contribution to OGRE have done so because they chose to do so. Either because they wanted to do it for fun, or because they saw that it was in their own interests as users, they sent patches in, created new add-ons, joined the team etc. None of these people required any coersion from a license to do what they did, and all the better for it – because they chose to do it, they tended to be more forthcoming in terms of adhering to standards, answering questions about their contribution, and generally participating in the community rather than just doing a minimal code-dump.

The other thing I considered was the impact of someone modifying OGRE and not publishing their changes. On the one hand, this is a potential for a lost contribution, but in practice the LGPL conditions are only to pass on the source to others, not to contribute back to the core project (which requires a contributor agreement anyway), and as mentioned we’ve already established that the best contributions are from willing sources anyway. Then comes the principle of whether it matters that the end user is not guaranteed to see the modified source of OGRE – free software principles say this is not right, but I have to say that in practice, most end users don’t care and in practice it’s of little consequence for OGRE. Obviously many people in the free software camp would disagree strongly with this. It’s more of an issue in enterprise apps where a customer who receives a significantly customised application from a vendor, and needs to keep maintenance in mind; IMO regardless of whether the software is based on open source the customer should be insisting their vendor delivers source anyway – that’s what contracts are for. But I digress.

So, after much thought I concluded that the most useful pay-backs to an open source project, and thus its community, from a user (in my opinion) were:

  1. Code & documentation contributions – which based on my experience come from voluntary sources
  2. Community participation – forum support, bug reports etc
  3. Publicity.

The ‘restrictive’ elements of the LGPL (and GPL), to which so much confusing license text is dedicated, didn’t seem to contribute to any of those except number 3, and then really just as a side-effect.

It was at this point that I realised that my previous opinions about permissive licenses not providing enough safeguards against exploitation for an open source project were off-base. In practice, open source projects don’t really need protection, because their best contributors are going to be there regardless (yes, I realise the GPL provides more protection to end users who want to get at the source code, that’s not what I’m considering here). ‘Freeloaders’ – people who use or modify the open source project for their own ends but give no code or community contribution back – are always going to exist; even under the GPL it’s easy to freeload, if you make your money from hosting services for example, and thus license choice has little impact on the scale (if not the nature) of the freeloading. Besides the annoyance of ‘that guy took my work and made some money out of it’ – which you have to accept as an inevitable outcome of going open source, so stick to making proprietary software if that bugs you – freeloaders have little negative effect on an open source project, and actually their use can contribute positively to item 3 (publicity). The key is to recognise that in practice you can really just ignore freeloaders, and instead concentrate on maximising the positive contributors in your community.

So, if we acknowledge that the people whose contributions we actually want are those who contribute voluntarily, regardless of license, we quickly come to the conclusion that all that really matters is the size of the community. It’s a fair assumption that for a given project there is a relatively stable percentage of users who will choose to contribute back (the percentage itself varies per project, but is fairly stable per project in my experience), therefore the easiest way to increase your contributors is to just increase your user base. Forget about trying to coerce people into being ‘good’ members of the community, just trust that the percentage will be there and will track your overall numbers.

One way in which to attract more users is to make the licensing simpler and more easier to understand. Programmers hate legalese, and a simple, clear license is bound to be more attractive than our LGPL (with static link exclusion), plus OUL option. It’s for this reason that from OGRE 1.7 we’re switching to the MIT License.

I’d like to thank Matt Asay for his post on the subject, which really jump-started my thought processes on this subject in the last few weeks. This whole process has been a reminder to me that it’s always good to re-examine your previous assumptions and opinions in the light of practical experience, and to be prepared to reach different conclusions than you did before. The whole open source landscape is constantly changing and maturing, why should those of us immersed in it be any different?

Torchlight at PAX

OGRE 2 Comments

Hell yes. It’s nice to come back from holiday to more eye-candy from leading OGRE-based projects, and this one is looking very nice indeed. Congrats to Travis and the rest of the team at Runic, on the PAX ‘09 coverage and also the recent Gamasutra article which I read on my phone at breakfast one day while on holiday (much to my wife’s annoyance :? ).

News Mash-Up

Linux, OGRE, Personal, hardware 21 Comments

I’m busy, again. A ton of things just bunched up towards the end of the month, and I’m on-site with a customer in Cambridge some of next week, so I’m keeping my head down a little right now. Here’s a news-blast though.

I love Ubuntu server

I’ve been setting up my new server. I’ve probably said this before, but for servers, Linux rocks. I’m ambivalent about Linux on the desktop, where I believe consistency and usability are more important (the Mac floats my boat the most there, and Windows if only because of MSVC++), but for a server Linux really brings great things to the table. Rock solid server apps, ridiculously good performance for the hardware (a mere Intel Atom 330, goes like a greased whippet), easy and most importantly infrequent maintenance. When it comes to distros, I loved Debian for its sensible defaults and great package management, but Ubuntu server takes that and makes it even better.  The added bonus of a LTS version that I know will be supported with security updates until at least 2013 is welcome too, because I like to set these things up and mostly forget about them.

I’m glad Ubuntu’s default mail/IMAP servers are Postfix and Dovecot respectively – they’re just ridiculously easy to set up. I’d been using Exim4 on my Debian box, which was the default at the time, and learned to dislike it because of the over-complex configuration (I’d been used to Postfix when I ran a Gentoo server before that). I’m also planning on trying out Bacula as a replacement for my manual backup scripts this time around.

PSUs hate me

One of my jobs this week was building a machine around some customer hardware which I was testing an abberation on. Having built it, I realised I didn’t have a spare PSU rated highly enough, so I ‘borrowed’ one out of another GPU test machine I had. It ran all day, then decided to die – this just 2 weeks since my server’s PSU died and needed to be replaced. It’s just bad luck – my decent APC UPS should be providing ample power regulation. So, I’ve ordered 2 new PSUs to make sure I have enough stocked in future!

Excitement is infectious

I was happy to show off some shots of my new & improved core terrain system for Ogre, which isn’t entirely done yet but was usable enough to get some nice shots out of. I knew I had to move on to some other work for a while but I was still pleased to be able to show off some initial eye candy (which BTW, is still very early – I haven’t finished yet by any means). I was glad to get some positive & constructive feedback, but of course now people are rushing off an including it in their projects, since all the code is public in svn. Despite my slapping a big red warning sticker on it saying ‘handle with care – volatile material’  and that they shouldn’t assume it works properly yet, people are hacking on it already, with some nice results I have to say (such as Ogitor integration) – but of course with many questions and issues. Such is the nature of open source – it’s a blessing that you get instant, voluminous feedback, and it’s a curse that you get instant, voluminous feedback ;) I hope to get more time to deal with the fallout from that if not next week (because of my travels), then the week after.

The OGRE Patch Mountain

Our community is always active, and it’s great to get patches. I do have a quite high validation standard for the core though, and processing patches can often take a fair bit of time. I try to spend a few hours per week doing this, but mostly that’s only just enough to keep the level static, rather than reducing the backlog, and it still spikes up sometimes (as it has this week) – that’s because even if I get an afternoon on it, to review and test things properly can eat that up very fast.

If there are any experienced members of the Ogre community who would like to assist me with keeping the patch mountain down to a small hillock in future, and are willing to adhere to our high standards of review, please contact me at sinbad AT ogre3d DOT org.

iPhone 3G / 3GS port coming soon

We’ve had a fledgeling GLES rendersystem around for a while, and obviously the iPhone / iPod touch are the highest-profile targets of that. I’d been intending to have a go at it later in the summer, but masterfalcon on the forums has beaten me to it and already has it running (with a few small issues remaining to be ironed out) on the 3G and 3GS. There should be a public release of that in the relatively near future.

3D Web Browsing With OGRE

I love this video. Nice work princeofcode (aka ajs15822)

That’ll do for now I think.

svnmerge and svn 1.6 don’t play nice?

Development, OGRE 2 Comments

Bah. I’ve used svnmerge for ages to meet my Subversion merging needs, but a change around property management in Subversion 1.6 makes it no longer work anymore.

Yes, I know Subversion has had its own merging features since 1.5, but I still use svnmerge because it works well, it generates me detailed merge commit messages, and it doesn’t require me to upgrade all my repositories to use it. Sourceforge was on Subversion 1.3 for ages so this was very useful, but even now they’re on 1.5 it’s a PITA to upgrade your repository, because you have to re-upload the whole thing to do it (I already have a local rsync copy anyway, but you have to locally upgrade it and re-upload). Obviously this is not the kind of thing you want to be doing when development is going on, and especially not when you have Summer of Code students getting on with things.

The answer for me was to downgrade back to Subversion 1.5 because that still works both ways. I’ll maybe start using Subversion’s in-built merging once I’m confident it’s no longer less functional than svnmerge, and when/if I can find a suitable window to take the repository offline for everyone for a few hours. Right now, it’s just not worth the hassle.

[edit]Aha – an alternative is to use this patch to svnmerge to make it work with svn 1.6’s altered error reporting behaviour when deleting a property. For some reason the svn 1.6.2 official Windows distribution didn’t seem to have this in the contrib folder.

Circular dependencies

Development, OGRE, Open Source, Tech 8 Comments

The 3D Material tab with specular map at the right. Seed image by <a href=I can’t remember who made the assertion / joke that if you looked through an infinitely powerful telescope you’d end up seeing the back of of your own head, but I was reminded of that by a certain event today. In the last couple of years I’ve often Googled for a particular subject and ended up with the top hits pointing me back at one of my own posts in the OGRE Forum or on my blog, in a weird self-citing manner. In the worst cases, these posts answer or clarify my own current question, because a thought process I’d had a few years before, and then forgotten about, can often be useful. It’s like having a stack of your old notebooks in the cloud! Or an archived clone of yourself pointing out how age is making you stupid.

The other weird experience is when you download or otherwise get hold of a piece of software, and unexpectedly find that it uses your own code. I’m sure this is common in open source circles, because users of open source don’t have to tell you when they use your code, but nevertheless it’s still an odd experience. It’s especially nice when you like that piece of software – this happened to me today with PixPlant 2.

As I mentioned yesterday, I was reviewing tools for normal/displacement/specular map generation from reference sources, and I’d been evaluating CrazyBump and ShaderMap Pro. Evak in the OGRE Forums suggested I try PixPlant2 because he liked it. So I did, and I was impressed – the texture generation seemed as good as CrazyBump, but it’s cheaper ($175 rather than $299), and it also includes tools for creating tileable textures from original sources, detecting repeating patterns, straightening things, and blending the edges for you.

So, I was already leaning towards this purchasing PixPlant2, but then as I was browsing for textures, I noticed that the PixPlant2 application folder had some familiar files in it – such as OgreMain.dll, and rather familiar material files in the media folders! Checking the docs, sure enough OGRE was credited as a dependency. The application I ended up gravitating towards included software that I wrote! :)

To cap it all off, they’ve been very nice and offered me a free copy, so my normal map generation needs are entirely satisfied, for far less than I was expecting to pay. It’s not often things work out quite so well!

CrazyBump or ShaderMap Pro

Development, OGRE, Tech 8 Comments

I posted about this in the artist’s section of the Ogre forums already, but I figured I’d post it in my blog too.

I’m looking for a content pipeline to generate normal, displacement and specular maps from reference photos, and I’ve been playing with the demos of both CrazyBump ($299) and ShaderMap Pro ($19.99). In my tests, CrazyBump seems to give me the superior results very quickly, and I’ve been impressed by both the default setup and the amount of tweakables it has. It seems to pick up surface details really well compared to ShaderMap Pro, which seems to muddy them a little in most cases.

A case in point (CrazyBump on the left, ShaderMap Pro on the right):

crazybumpshadermap_test

The results are very similar, except that the surface of the stones is more ‘polished’ on ShaderMap; the indentations and scratch marks are always lower frequency, and the fine details are generally being lost. Yes, I know they’re probably using slightly different preview shaders, but the differences are obvious in the textures themselves too. I’ve tried tweaking all the generation settings and yet I still can’t get ShaderMap to register the scratches and scuffs at the level of detail that CrazyBump does right off the bat. CrazyBump also has lots more options generally when it comes to tweaking the results and I’ve found I can get quite customisable results with the input images I’ve tried.

So to me, it looks like CrazyBump is worth the price premium. ShaderMap Pro produces some nice results too, and for $20 it’s very good value, but it doesn’t seem to meet quite the same quality level as CrazyBump. What says the Internet? Any other suggestions?

Tempting fate – a (possibly final) back update

Health, OGRE, Personal 11 Comments

hunchbackI’ve been pretty busy lately, so there hasn’t been much time for blogging – I’ve tagged a few subjects for future expansion in my drafts, being very much a reentrant blogger, but so far meat has only been added very sporadically to those particular bones. By the time I get around to filling in the detail, the subject matter will no doubt be considered ’stale’, but maybe my particular brand of commentary might lend a modicum of life to them anyway.

I’ve deliberately avoided talking about my back for a while, for multiple reasons; firstly, that I suspect it gets a little dull to read, and secondly it seems that whenever I talk about it on this blog, it seems to get worse the day or two following. I’m not a superstitious man by any means, but it’s really quite uncanny; of course, it’s probably just because when it’s feeling better, I’m more likely to overdo something & injure it again.

So, with he appropriate caveats about what might happen in he next 2 days, the good news is that ever so slowly, my back is improving. After several months of following the advice of my physio to concentrate on stretching out and lengthening the muscles and tendons in my mid-upper back, to stop them clamping up and locking my back in enormously painful ways, I’m definitely seeing positive results. I now do about 1.5 hours of exercise and stretching per day, and go to the gym twice a week on top of that for something a little more strenuous. It still hurts moderately every morning and most evenings, and occasionally I get a more serious bout which requires me to take painkillers (usually the day after doing something unwise, or being too immobile such as when travelling for long periods), but overall, I can see positive results. Each month I seem to be a little bit better than the last – it’s not a fast process, but at least it is a process.

As you can imagine, it still plays havok with my daily routine, and I’m almost constantly frustrated at the amount of stuff I can get done these days. Years of sitting at the PC until 2am if that was ‘necessary’ led to a certain baseline expectation of how much I could do in a day. Now, I’m mostly a regular daytime beast, with a few extra hours at the weekend and the occasional evening here and there, so it’s quite different. But, I’m adjusting to it, such as learning to say ‘No’ to work offers that don’t feature highly on my personal priority list (which basically means that stuff that enhances Ogre gets top priority, things that use Ogre next, everything else brings up the rear, if at all), and time-boxing what I do in the community / forums – now, if I can’t do it in the time I have, it probably doesn’t get done (by me anyway), rather than the old situation of me just spending as much time as it took. I don’t like having to pass on work, or get slightly out of touch with some aspects of the community, but on balance it’s an acceptable sacrifice given the alternatives, no matter how guilty I might feel about it sometimes.

So, if I don’t talk about my back much anymore, it’s because it’s just on a very slow but seemingly steady road to recovery, which as you can tell, doesn’t make for very interesting blog posts ;) It doesn’t mean I’m ‘better’ yet, and I’ve accepted that I’ll never be able to return to my old ‘all night coding marathon’ days, (revel in those while you can guys, but definitely think about giving them up before your back ends up like mine did) – but it’s probably time to stop talking about it now. My thanks to all those who sent their good wishes, and helped me out over this rather testing time.

Back from FMX/09

Business, OGRE, Travel 13 Comments

Yes, I got back from FMX/09 last night, after the usual pain-in-the-ass shuttling between London airports to make my connections and the inherent waiting around that entails. I’m constantly disgusted by the amount airports charge for internet access so I left writing this post until today.

I really enjoyed FMX – it was the first graphics conference in which I’d been officially on the speaker bill, so I’m not sure how well other conferences treat their speakers, but at FMX I thought they did a fantastic job; everything was really well organised and went very smoothly. I actually enjoyed FMX more than Siggraph to be honest; it’s smaller and I found it a bit more manageable, and people seemed to have more time to talk. The speakers dinners were great for meeting & talking with various random people – such as having a quick chat with Ken Perlin, creator of the ubiquitous Perlin noise, and who had already heard of Ogre, which was nice.

My presentation went well, I was fussing over and tweaking the content right up to the last minute – was there enough for the time, was there enough technical detail, or too much, and so on – but in the end the feedback I received suggested I got it right. There was theory and arm-waving, I dove into code for a few minutes to illustrate how you build up a simple demo, I showed screenshots of Torchlight and OgreSpeedTree, videos of Venetica, ZeroGear and Dangerous Australians, and ran a real copy of The Book Of Unwritten Tales (and in the presentation tradition, my machine choked on the DVD the first time). In the end the hour flew by and I had to speed things up a bit, leaving 5 minutes for questions, which was just enough, so not bad on a timing front.

The room was also packed, people were standing at the back and sides of the room due to lack of available seating – I had no idea what to expect in terms of interest levels so I was very pleased with the turnout in the end. I also collected quite a few business cards and contacts from people using Ogre or thinking of doing so, which is always good, especially for a free agent such as myself!

I also met up with the guys from Filmakademie (who run the conference) who are developing some really cool tech using Ogre, such as procedural facial animation systems and non-photorealistic rendering. The editing framework they’ve built for these kinds of projects to sit on top of is looking really slick (it reminds me a bit of Houdini), and the good news is that they’re going to be releasing it as open source (LGPL) very soon, so I’ll be sure to link that both here and on the OGRE site when it’s available, because I think a lot of people are going to like it. All in all it was great to meet them and we intend to stay in contact in the future.

I’d like to thank everyone at Filmakademie (Constanze, Volker, David, Stefan, Nils, Simon and Thomas) for inviting me, and making it such an enjoyable visit.

[edit]Oh, and please bear with me if you’re waiting for a reply to something – I did manage to keep up with email somewhat whilst away, but more significant things will have to wait for me to catch up with them in the coming days.