Another painful recollection from that project was one 3d technology we have tried during its lifetime. It was Pulse3d. A lot of time passed since I've been developing using it and probably they fixed all problems I've seen, impoved all their authoring tools but at that time it was one of the most flustrating products I've been worked with. Buggy and inconvinent tools, and the DUMBIEST programming language I've ever programmed in. For those of you who do not know what Pulse3d is about let me explain. It is a tool that allows to create interactive 3d models which can be displayed in web browsers using plugin. 3d models can embed scripts so you can program quite complex things with it. Well you can if you can resist all pain caused by Pulse3d's scripting language and it's tools. Imagine scripting language which looks like castrated C++, imagine scripting language which has POINTERS and has NO GARBAGE COLLECTION. Now unlike C++ and C it has very small "standart" library so many things like many standart string manipulation operations must be reimplemented from scratch. There are also been missing some features from C++ which created other problems to me. And again tools were very inconvinent. And again whole thing was terribly buggy (I recall I found either 'continue' or 'break' to do not work in loops and there was plenty other bugs).
I just don't get what about it's authors were thinking when they designed that thing. Why we are using scripting languages like Perl instead of languages like C and C++? Because they are supposed to be easier. Because they save programmer's time. Basically it is tradeof between ease of use and perfomance/memory usage. Now if you have scripting language which is harder to program in than C/C++ then what's the point?
And one more word on pointers in this thing. I've seen plugin to crash together with MSIE when I had null pointer and other typical memory managment bugs in my scripts. I had very strong suspect that Pulse3d's scripting language works with real pointers and thus can access MSIE's process memory. Damn good way to exploit naive users' computers on the web. No need to seek buffer overflows in MSIE anymore. Just download Pulse3d authoring tools, get somewhere nice 3d model, write offensive script, glue them together, put result somewhere on the web and have fun!