This summer, Sam and me are exploring Servo's capabilities and building cool demos to showcase them (and most specially, WebRender, its engine "that aims to draw web content like a modern game engine").

We could say there are two ways of experimenting. One in which you go and try out things as you think of them, and another one in which you look at what works first, and build a catalogue of resources that you can use to experiment with. An imperfect metaphor would be a comparison between going into an arts store and pick a tool... try something... then try something else with another tool as you see fit, etc (if the store would allow this), versus establishing what tools you can use before you go to the store to buy them to build your experiment.

WebRender is very good at CSS, but we didn't know for sure what worked. We kept having "ideas" but stumbled upon walls of lack of implementation, or we would forget that X or Y didn't work, and then we'd try to use that feature again and found that it was still not working.

To avoid that, we built two demo/tests that repeatedly render the same type of element and a different feature applied to each one: CSS transformations and CSS filters.

CSS transformations test

This way we can quickly determine what works, and we can also compare the behaviour between browsers, which is really neat when things look "weird". And each time we want to build a new demo, we can look at the demos and be "ah, this didn't work, but maybe I could use that other thing".

Our tests use two types of element for now: a DIV with the unofficial but de facto Servo logo (a doge inside a cog wheel), and an IFRAME with an image as well. We chose those elements for two reasons: because the DIV is a sort of minimum building block, and because IFRAMEs tend to be a little "difficult", with them being their own document and etc... they raise the rendering bar, so to speak ;)

All together, the tests looked so poignantly funny to me, I couldn't but share them with the rest of the world:

and Eddy Bruel said something that inspired us to build another test... how many doges can your computer render before it slows down?

I love challenges, so it didn't take me much to build the dogemania test.

It can ridiculise my MacBook retina very quickly, while people using desktop computers were like "so what's the fuss, I get 9000 doges with no sweat?"

It was also very funny when people sent me their screenshots of trying the test on their office screen systems:

Servo engineers were quite amused and excited! That was cool! We also seemed to have surfaced new bugs which is always exciting. And look at the title of the bug: Doges disappear unless they are large and perfectly upright. Beautiful!

To add to the excitement, this morning I found this message on my idling IRC window:

7:22 PM <jack>
7:22 PM <jack> we all love it so much i thought it needed it's own domain :)

So you can now send everyone to 🎉

Thanks, Jack!