In today’s markets, copyright and patent protection are big business – any innovation, new design, commercial process and the styling and design of everyday objects is subject to an ever-increasing array of sophisticated and all-encompassing legislation and practice designed with the sole objective of preserving the legitimacy of intellectual property.
Understandably, there’s an equally diverse range of activities and practitioners whose sole aim in life is to subvert, hack and otherwise fork this goldmine of potential opportunity, either for the betterment of society and technology as a whole, or – more usually – to make a fast buck on the back of the endeavours of others.
There is a third arena – one with which sl and the wider virtual world community are familiar, as is a growing body of those for whom the internet forms a mainstay of their activities – that of open source and Creative Commons licencing. It’s this latter approach that i personally feel can be the most productive, given the right conditions, but on this occasion, i want to concentrate on one of the tools that is common to both legitimate and below-the-belt ‘product development’ – the art of reverse engineering.
It’s not just a modern-day practice – reverse engineering has been a stock in trade of a huge variety of human activity for as long as records have existed, and almost certainly earlier than that. It’s one of those things that we tend to take for granted, without realising just how much the practice has contributed to society, until it hits the headlines, usually as a result of one mobile phone or tablet developer suing another for breach of copyright. It’s because of this sort of practice that reverse engineering has gained a bad name, but that’s not necessarily fair or deserved.
Back in the early 1930’s, a small group of Polish mathematicians set to work reverse engineering a system that without intervention could potentially have devastating effect worldwide. In an early example of open-sourcing, they shared their successes with colleagues in Britain, who went on to develop and use that knowledge and equipment to achieve incredible successes. Ultimately, the successful reverse engineering of the German Enigma machines, some say, shortened the Second World War and brought immeasurable gains for the allied forces; no doubt, it also saved thousands of lives. It doesn’t have to be a bad thing, after all.
In fact, for those of us who like to get our hands dirty – particularly those with a kinesthetic tendency – it’s a brilliant way of getting to grips with complex models, processes and activities, without going through all that tedious learning and reading of manuals that is generally accepted to be the proper way to learn anything. To some, it may be completely counter-intuitive to start with the finished product and deconstruct it, in order to gain understanding, but to me it’s one of the most effective ways i know to achieve results.
That is, usually.
The past couple of weeks have seen the Opensim users’ mailing list – which regularly drops into my inbox – buzzing with the news of the Singularity Viewer‘s new Wavefront and Collada export function; a story caught up by the regular sl blogger corps shortly after. This, most definitely, piqued my interest, although i was dubious about just how good any mesh exported from a prim object might be. The initial chatter has now resolved into a discussion about ‘which is better – Firestorm or Singularity’, the answer to which appears to be: neither… they’re both different and have their own particular benefits.
Sounded to me like an ideal excuse for a test run with Singularity – which i’ve never tried – and an opportunity to teach myself a bit more about mesh, without all that messing about learning how to create boxes and such like!
The verdict – and bear in mind, i’m a died-in-the-wool Firestormer – i really like Singularity! It’s simple, uncluttered and fairly intuitive. It also has some interesting looking features that i’ve yet to try, although i’ll definitely be playing with them at some point, (can’t wait to try ‘explode’, in the pie menu!). The viewer handled Advanced Lighting, (that’s shadows to the unenlightened), shockingly well on my system and within fifteen minutes i’d sorted out all my preferences and was getting along famously – very impressive work, Siana! Personally, i’m not bothered about the whole v1 architecture squeezed into a v3 box debate – it worked for me, without any hassle, and that is good enough.
On the downside, i missed my tweaks… Firestorm allows me to tweak, fiddle, bugger up, adjust and customise to my hearts’ content – it gives me a million buttons, sliders and doohickeys with which i can destroy fine tune my user experience for ever and a day. Singularity – as far as i can see so far, and i’m happy to stand corrected – doesn’t, and to be honest, that did feel a little frustrating. Having said that, i’m sticking with FS for everyday use, although i can see myself regularly having a dabble with Singularity, which has now officially knocked Kirsten’s Viewer off my personal number 2 spot.
Anyway, back to the point of this post – mesh downloads: the subject i chose was The Gallery, still my favourite piece of building and the one i’m most proud of. When it comes to building, i try to be as economical as possible, and i don’t reckon 37 prims is all that bad for a trendy public edifice… but would it be even better in mesh? More to the point, could it really be possible to export those 37 prims into something meshtastic?
Right click > Pie menu > click > click > click > Save > POW!
It was that simple and, yes, i had a completely accurate and workable Collada file at the end of it. Forget all that creating stuff from the ground up – now i had the power and flexibility at my disposal to build in prims, export, polish, perfect, optimise and import a fully-fledged mesh back into sl… Woohoo!
It’s at this point i discovered that reverse engineering isn’t necessarily straightforward or simple.
Having simplified my mesh, removed unnecessary vertices and points, optimised surfaces and generally made The Gallery MK2 fabulous, i was ready to upload back into sl, (texturing could come later – this was proof of concept stuff!). Magically, my 37 prim construction now had an LI of… 240! Fiddling, in-viewer, didn’t help either – i managed to get down to LI 160, but nothing better. Yet more fiddling, and i broke something, generating error messages that may have been written in ancient Phoenician for all the sense they made to me – so, i’m afraid it’s back to the drawing board, again.
Where did i go wrong? Let’s think about those Enigma code crackers for a moment – like me, they had a definite goal in mind, they also had the tools they needed and the opportunity to use them. Unlike me, they didn’t make the fundamental mistake of plunging into something about which they had absolutely no knowledge or understanding. They had done their homework, gained years of experience and read the manuals and they had a very clear idea of how they were going to go about what they intended doing.
It’s a mistake to think that reverse engineering – simply by virtue of the fact that it’s a destructive approach – doesn’t require knowledge, understanding and a grasp of the general principles of what is is your’e doing. You may get lucky sometimes, but the more complex a problem or system, the less likely it is that you’re not going to get anywhere. i made the mistake of thinking that having a completed mesh was an easy route to developing competence in building in 3D… that statement alone demonstrates how fundamentally flawed my thinking was!
However, all is not lost – i’ve gained some valuable insight into my own capabilities and the complexity of modelling in mesh, and i’ve found another viewer to explore. So, in a way, it’s all good!
We’re learning the hard way
It just don’t matter what they say
Gin Blossoms – Learning The Hard Way