In Animation and 3D: the web is doing it wrong, I argue that the way the web does animation and 3D is completely bogus and deserves to die. With Tao Presentations, we offer a dynamic document description language that lets us write shorter code that is much closer to storytelling. We’d like to bring this to the web.
Have you ever created a dynamic animation on a web site, or displayed a 3D object? Really, why is it so complicated? Why should I learn how to use half a dozen libraries, write dozens of line of boilerplate HTML, WebGL and CSS code, just to rotate some text on the screen or display a 3D object? Why do I need three (or four, or five) languages, libraries or frameworks to design a single animated web page?
In the realm of business presentations, Tao Presentations solved this problem with a 3D dynamic document description language, letting you easily create sophisticated interactive 3D animations and presentations. What if we brought this very innovative platform to the web? What kind of applications would become possible if we improved web browsers in the areas of storytelling, interactivity, 3D or multimedia?
In this screencast, I show how you can build a dynamic, real-time clock in less than 10 minutes with Tao Presentations.
In this live coding session, we demonstrate how to quickly create a DNA strand in 3D:
The whole code is below:
import LuckyStarsTheme theme "LuckyStars" picture_slide "Did DNA come from outer space?", light 0 light_position 1000, 1000, 1000 translate -300, 0, -300 rotatey mouse_x random_seed 12345 dna_strand with -30 .. 30 slide "Arguments in favor", * "Tardigrades can live in space" dna_strand N:integer -> locally translatey 50 * N rotatey 10 * N locally rotatey 90 color "#BBB" cylinder 0, 0, 0, 10, 10, 200 dna_base_pair random (0, 3) dna_base_pair N:integer -> dna_base_color N mod 4 sphere 100, 0, 0, 40 dna_base_color (N + 2) mod 4 sphere -100, 0, 0, 40 dna_base_name 140, N mod 4 dna_base_name -140, (N + 2) mod 4 dna_base_color 0 -> color "red" dna_base_color 1 -> color "blue" dna_base_color 2 -> color "green" dna_base_color 3 -> color "grey" dna_base_name X:integer, N:integer -> text_box X, 0, 40, 40, font "Arial", 30 color "white" align 0.5 vertical_align 0.5 dna_base_text N dna_base_text 0 -> text "C" dna_base_text 1 -> text "A" dna_base_text 2 -> text "G" dna_base_text 3 -> text "T"
Recently, someone posted a comment on “The Dawn of 3D Games” which I suppose disputed the vaguely stated claim that I wrote the first 3D game for a PC. So I felt like I had to reply and give my point of view on exactly why me, myself and I alone consider that Alpha Waves was a small milestone in the history of 3D gaming.
In reality, there is in my opinion not a single “first 3D game on a PC”, but for a given definition of what a 3D game is, you have a first one that matched these criteria. And for a set of criteria that seems to be relatively reasonable to me (like: it has to be a game, it has to run on some kind of PC or microcomputer, it has to be true 6-axis 3D on a reasonable portion of the screen, and you need some kind of immersion and interaction with a large number of objects), Alpha Waves may very well be the very first. Change a tiny bit in the definition, and some other game gets the crown. So let’s put it that way: Alpha Waves was innovative, and that’s my personal favorite for the title, for obvious reasons.
All that doesn’t matter much, except that in my attempt at documenting this bit of useless ancient geek history, I visited the id Software web site, and I was surprised to see that there’s still the following on their web site:
The first 3D PC game ever! Hovertank 3D debuted the amazing technology that was used to usher in the First Person Shooter genre with Wonfenstein 3D.
Is this a boiled frog approach to marketing? Just by leaving patently wrong stuff on the web site long enough, folks will stop noticing and end up thinking it’s true?
Come on, John! I hesitate writing that about Alpha Waves, when it predated Hovertank by a good year and had a significantly better 3D rendering (if only because it had three axis of rotation). And Alpha Waves is by no mean alone, there are easily half a dozen games predating Hovertank and offering better 3D. You are a celebrity in the world of video games. With all the credit that is due, why do you need to keep this little lie on your web site?
Why does it matter? Precisely because you are a celebrity, so everything you say has a huge impact, including minute details of wording in a long-forgotten corner of an old web site you probably don’t even remember existed. Nonetheless, just fix it. Simply write something like “The first id game ever.” That would do just fine. And that claim is a significant milestone in its own right. Probably a bigger one than “first 3D game on the PC”, as far as the gaming industry is concerned…
And if you feel concerned about your personal place in history, I’m sure Armadillo Aerospace will take care of that.
Recently, a user of Tao Presentations informed us that Google Chrome displayed a dire warning after he downloaded our software: “Tao Presentations may be malicious software”. Uh oh, for the average Joe, that’s a big no-no.
Google locks out “unapproved” programs
It’s not just us. Recently, I tried to download some of the amazing demos created by Iñigo Quilez. Same thing. Seriously, a 4K exe that manages to display a complete mountain? And Google Chrome would have me believe that there’s room in there for “malicious software”? Get real.
Now, it took me quite a while to find a solution to this problem. Apparently, you just need to record your site in Google’s Webmaster tools, and after scanning your site and ensuring (I assume) that there’s no known virus signature in the files, things should improve.
I still find this really annoying that a browser vendor would, by default, tag unknown files as “malicious”. Who are they to make this judgment call?
Why didn’t Google implement a real solution?
Shouldn’t they instead have something a little more sophisticated, that actually detects malicious signatures? You know, like a real anti-virus? Don’t tell me that Google doesn’t have smart enough engineers to write an in-browser anti-virus that doesn’t completely suck.
Nah, instead they went the easy route: anything that we don’t know is malicious. And we tell your users so.
I used to be a big fan of Chrome. Not anymore. Because of this single issue. I think this demonstrate an incredibly stupid arrogance and lack of technical diligence on Google’s part.
Google overstepped its authority and took advantage of their weight. Let’s not get used to it.
This article explains how Tao Presentations proceeds to transform a document (.ddd) into images on the screen. It describes an interesting mechanism making it easy to create dynamic documents that depend on events such as time or mouse movements. Moreover, this technique also allows Tao Presntations to optimize the rendering of graphic elements, enabling smooth 60Hz drawings even with complex contents.
I gave a short talk about LLVM today. The link to the talk is tao://git.taodyne.com/examples/LLVM (sorry, can’t make it a hyperlink, as WordPress removes the tao:// part…). To watch this link, you will need Tao Presentations, which itself uses LLVM for the rendering.
This is not the first meta-talk made with Tao Presentations, but for some reason, this one reminds me of the first time I presented HPVM from a Powerpoint within HPVM.