Design Through FX | Ben Watts | SIGGRAPH 2018

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] [Music] hey guys I'm Ben from BtoB design obviously and today I'm just going to talk a bit through some projects I've done recently with a a studio called tendril in Toronto just a really nice bunch of guys and we're lucky enough to do a teaser for the new season of American Horror Story with in collaboration with Method Korb trees and of course ourselves tendril and then I'm really just going to talk a little bit about creating sort of design with effects more so than rather you know pyro simulations and destruction which is stuff that I still do on a daily basis but most of the work I do is probably a bit more abstract it's um you know knitting and growth and a lot of weird stuff like that so just go through here so a little bit about me I'm I'm fairly remote in Australia I'm in a town from about 14,000 people so the closest city to me is about two and a half hours away so I don't really have a lot of exposure to any kind of studios or anything like that I'm I'm often on my own and I just make connections through the web and I sort of I'm usually working on short form stuff like commercials and TV shows I did do a little bit of film work this year and it was okay but I definitely prefer projects at a you know quicker turnaround I've put together just a little bit of a real here it's pretty short but it'll just give you probably an idea of the work that I do if you haven't seen it before so play that now [Music] [Music] all right so it's uh it's a bit of everything and what I want to talk about first is sort of controlling effect you know we've always when we doing effects work of always we're always usually coming up with something that sort of has to be turned on and usually it's not something that's that's turned on suddenly so you know like a gradual thing and I'm not I'm not the type of guy that's big into building digital assets funnily enough I've got a couple that I keep around but I think I like to rebuild stuff just to keep my mind sharp and you know just to make sure that I'm not forgetting you know little bits of X or whatever there that I've sort of learned over time that I've been using Houdini which is probably about three and a half years by the way if anyone's wondering so I'm just gonna play this little video here this is an asset that I'm just going to sort of demo it's not meant to look prettier thing it's just sort of showing that in in this I said I'm showing like different ways you can apply like a vector attribute in this case to like a surface and sort of it's just a displacing the surface here but the important thing is like you can you can time it you can tell how many frames it's gonna go for what you know what access it what access is going to work on if it's radial if it's linear all that sort of stuff and it's essentially applying v's within itself so you can basically run it across an object or a surface and just get stuff done really quickly because you know if you don't have a tool like this or you know I guess all you don't you don't figure out how to build one you're gonna find yourself in a world of pain in a lot of circumstances with with controlling this stuff so here on the second one what I've actually did what I wanted to talk about with this was I made the option to do this in just black and white or RGB and that's say for if you wanted to create a lijing add leading-edge sorry on an object but then like cull out the rest of the surface so what you'll see here is I'm making the alpha zero just to the viewport as a across which depicts it's sort of being eaten away and leaving that void behind so you know it's just the thing essentially that you can slap on on any into any job basically and just drive your stuff this could be activating rigid bodies it can do anything you can put this on curves and create offsets gross stuff it's just and and really all it is it just assigns like I said a UV texture and then you translate that you attribute and like I said I've got a bunch of stuff building here which controls how many frames and stuff that runs for so just showing the offsets here you can probably imagine how this would be very handy to have and it's just so easy to build so yeah that's I just wanted to explain that first because when I continue on you'll probably see some examples of where this is used you know you've got these ramps where you can cut out the the tails of the trails in this example but this is all real time of course there's no simulating so yeah just wait till this finishes she'll be really gone all right cool so this brings me to the first major thing I'm gonna talk about here as I said at the start we did this project which is like a dream job for me I was busy when this come along and tendril come to me and once I told me what it was I said I mean like I I don't care if I work all day and night I'm doing this thing because I'm a huge fan of this show so I was gonna happen no matter what so yeah we we dived in and I'm what I'm going to do first I just play the spot this is the entire thing with called the chord part the method part and the trees part there's also effects have their own in-house team of guys that worked on this so we just it's got pretty quiet audio so if we can it's pretty grosser so we did the part with the feet [Music] [Music] so there is and that's pretty out there it's pretty abstract but I love that and this is just our spot 105 [Music] okay so my tasks were to initially I was doing the the fig opening and I created a rig for that but what happened was like I only had ten days to pull this together all the effects for it so I kind of we spoke about it tendril and I and we decided because there'd be quite a few animation change changes with the scorpions they're quite intricate the way they move there just be better if they had their animators tackle that so what I did was the skin wrinkling as a nail comes across which you may or may not have caught that I'll show it here and then when they come out there's an attack like there's a little stringy gooey bits that are attached to the scorpions and also I did a variable viscosity flips him of all the the stuff coming out of the fig which had seeds in it too but you'll see that yeah so what this is is just showing like the methodology behind like those stringy little bits of sticky stuff and so all it is essentially is I make a set of points on one object create IDs for that object and then I'm just duplicating that and moving it away in space and then I can use the add node with the ideas to make connections like this so you can see the second sets of one moving around I go in into a four for each loop and I create a distance attribute between Oh point seven point one and then and I resample the curve at the same time which creates a curve you attribute and that propagates on to the resampled points and then basically I'm able to I think I created a primitive ID up above or in there somewhere to I might miss that but what that allows me to do per primitive is create a random amount of gravity and and and make it stretch it out based on distance and things like that which you can see I'm sort of just fiddling around here just getting a feel for what these settings do and then a couple lines of vex to say if it drops below the ground level just flatten it basically you can try to see that here super simple way anyone can I'm sure can pull this together I didn't click on the smooth the smooth node though which makes it look so much better I shoot it on that and then poly wire because above that with pay scale I'm actually adding a random piece gala value per point along the length so looks a bit rubbish there but when you when you render it whoops sorry when you render that it actually it looks pretty nice sorry I screw that up I'll just get it back through here because I just move on to the next part okay so these are the the rest of the effects that I did to the spot and they're just little screen recordings so I'm not sure we can see the little stringy bits off on the scorpions that's that technique I just showed you and so it's like and there's a variable viscosity Sam you can see the chunky bits in there just assigning like a black and white map to that stuff before it goes into the sim and then I take a percentage based on the ID from that and instant seeds into there and here's the wrinkly skin so this is using that that acid I talked about early on when I said about controlling effects where we just wipe across the surface and then we can displace it so that was a that was the American Horror Story spot it was really really fun and as I said the guys at tendril a phenomenal to work with so if you ever get the chance to work with those guys definitely take it they're not paying me all right not much so his we're gonna channel we're in a grandma here I'm gonna do talk about this meeting set up I got so many questions about knitting in Houdini Oh what the fascination with it is people just love it and there's been a few guys over probably the last couple of years as this sort of more abstract type of I don't know trend happens with Houdini doing this in their talks and things talk about techniques this one I don't think people have talked about before I created I created this like two years ago I was on a I was doing an air max and Nike Air Max commercial with a German studio and as always happens you do a ton of R&D and what if it doesn't get used so this was just something I come up with back then you should have seen this the set up it was horrendous I didn't know what I was doing it was slow as hell and so I rebuilt it and brought it into 2018 yeah probably good if I show it yeah it's it's kind of it's good feel like you know a medium close shot there's a bit of detail and stuff in there and I kind of colored the threads gold every X parameter and all that so stuff but yeah like I said I don't know what it is people just seem to like this sort of stuff I did this looks okay to me but it looks a little bit static so I did this other version just it was like last minute where I I made like the threads kind of I don't know have a bit of a bit of motion to them and they just look a bit more alive so I'm gonna talk about the setup and we'll step through it and explain exactly what it takes to make an effect like this and and what it is so it's actually really simple so what I'm going to do though is start with with this this guy here on the screen so this is just you know you just draw a loop and you connect it in a row and then just duplicate it just so you know I didn't want to do this here because it's a waste of time but that's all that it is it's just like there's a a row or a primitive per row basically so you know that in your mind as I go through this whoops horrible at this thing so we'll just start off with that and then what I'm going to do is step off to the side and create a super simplified version of the concept so we know what's happening here before I refine it and make it look a bit better so I've got 22 primitives in total I assign a primitive ID you know so we can create variation per row and we go into this this thing so we're just looking at one and this is for each loop I'll resample it just to smooth it out a bit and create this curve you attribute which is a 0 to 1 0 to 1 value along with the length of the curve I'm going to store this current position in in a rest attribute and then what I need to do is like take the loops out of it right but that puts it offsets it in space and I just use a match size just to snap it back to where it was originally and there's probably a more elegant way to do this in fact I know there is it was just lazy and did it like that so the end result is a bunch of straight lines okay so we've stored our curvy lines and then you get a copy of that you shove it off over in space just doesn't matter where you can twist it rotate whatever so we've got one up here and one down here now which you'll see if I template that correctly here's my asset again I've caught it morph one if you're interested it doesn't really matter and then I'm having a look with the visualizing I don't know if you guys use these nodes I using all the time that's what it's going to look like but that's how it's going to activate it's got the offsets built in into this into this asset currently and that's just subtract subtracting an amount from whatever's in there and so that's it like there it is like it's in its rawest form it's just taken these guys up here and shove them across here it's a morph essentially a position mix and this is where these assets are fun you can just move you know the ramps around and just play with this to get the results you want you can make them look tighter or looser you can even do this where you end up with these funny-looking rounded loops which is pretty useless but you can imagine if you had to do visualization or a still or something you could use that here I've got overshoot so they're just you know shooting down a little bit further than what they been meant to I guess but in the end I kind of just settled for something that looks like that you know and then this is where you go back to the ones you've moved off in space so you can make them look tighter or just rotate them around give them a bit of a twist which I think I do here there you go so you know it's probably not the most flexible thing but I've done versions before though where I like snapped it to like objects and projected it back onto the surface and that looks quite cool instead of just a floating chunk of net in space you can see that that morph attribute is the bias value in the mix because as I said it's just position mixing from one over here to here now I'm going to just jump back up and put the finishing touches on what would eventually be that look that I showed you showed you in the render at the start so I just took a couple of rows just to speed it up again assigning that primitive ID and I jump into this there's 4-h again and I probably shouldn't have left this scene because it complicates things but I've just got a low and a high res switch so however many points are in that circle is how many threads are round that are swept around the main backbone and you'll see that in a second when I sweep it so zoom in here and you can see that that's how you determine like how many you've got and I didn't even have to do a control this way by attributes I just use the defaults like the twisting scale you don't really need to do anything fancy with that it's pretty simple stuff and then I did another version off to the side so I can morph between like a really tight version and then this fatter more jittery version okay and then what I do is I create a rest position for the the fatter one and one for the skinny so I've got that stored away there and then I make them straight again as you saw in the previous example and so again the final state is a bunch of straight lines a bit of repetition here we move it off to the side assign the the duration and all that sort of stuff that we want and then so this this changes a bit so this first section here we're just going from you know the lines up in the corner back down into the the fatter threads you'll see because there's like a 2-stage more for you and that's how you get the look get it looking more interesting you can see that it'll get its site on so first we take care of just that big position shift and then we move we go back to where they were straight and I restore the which rest position is that actually yeah it's the original but the fatter version so I restore that back and what I want to do here is is modulate or blend between the the really thin version which is still swept and the fat one but it's not going to be like shifting positions from here to here anymore it's just happening on that that flat surface and then ultimately they get blended together so it's like a multi-stage blend so you can see here and this is how like effects what in my opinion how effects end up looking nice is just layering things you know chipping away at it and just adding bits and pieces as you go to get that detail nothing usually ever comes out of a system that looks super good if it doesn't have some kind of layering or you know all variation to it so I'm always trying to build that into my setups by default lots of variation then I'll do this other thing take another bot and I just add some 4d noise to the current position and animate it it looks like rubbish like that weird there's no smoothness or anything you can say that and I'm adding I'm randomizing I'm her and I see something I'm just I'm adding some randomness into oh that's that's what it is how much it's displaced which gives you those big loops and some little tight ones in there so 14 noise added to position and that just gives you the ability now to mix that back in I hope this isn't too confusing so if we have a look now hopefully you can clearly see what I'm getting at here with this is layering and adding different components to this so it still looks a bit weird it's not smoother or anything and I'm just playing with how much it gets displaced and do I want it to be even be animated or not so I've turned off the animation now it's a bit more static it's not displaced as much but um you know in the end that's that's a good thing about this you've got choices I think with effects that's just an important thing to take away is that's the thing you want to have it are choices and that's why he Danny so good and here we are like morphing those two sides together okay so it's gonna look a lot better in a minute I promise looks it fits spiders so kind of looks weird on the side you can see it looks like it goes real skinny to fat quite abruptly you can can control the blending and stuff back up on that asset if anyone wants me to explain that in person later on that the whole asset thing like I can do that as well nothing I'm just checking over things right now okay I'm gonna talk about surface ripple now so we've got these flat like nits right all threads are whatever they are they're just flat and I use the match so I take a grid and I just match match it with the match sighs node to that thing that you can see now it's templated they are in the same space and I just do two ripples ones never enough so you could do this like with Volpe's anything again it's just a quick thing you know ones okay but two is better you just merge them together and get a different result and then just it's just a point to form so you just take the original source net take a rest frame and merge it with the animated version sorry merging the animated version and there you've got you know the wavering yet it takes a quite a speed hit I guess with the pointer form but it gets the job done it looks good so good the the final morph with the curvature now on the waviness it was a bit slow watching this back now for the hundredth time if you didn't already catch it you can see that the different transition is there see it go like loose then it sort of goes tight then back and it rests at least that was the goal it's like a foe sort of dynamics it seems to work pretty good though but this stuff really comes into its own when you render it of course so with pay scale I just grabbed the the second visit there's a morph to attribute on that right side chain which handles the the large small morph I grabbed that and I basically put it into this wrangle so I could I wanted to use that as to drive the P scale I didn't explain that but the the asset on that right side had a morph to attribute so I've stolen that to use for my P scale here and I'm attribute blurring this I love this note I use this all the time in combination with smooth sometimes but see how much difference like it it changed it like it adds to the the threads it just calms them down and makes them look away cool and you can do as much smoothing as you want or not whatever you want I just did like a random pair primitive color just so I could visualize a little bit more I know there's other ways to visualize curves with hair nodes and stuff like that as well but this seems to do the trick so yeah I'm not sure how simple that seems or whatever but it seems pretty a fairly stripped back system to me but yeah it's basically the heart and soul of what's going on here just multiple layers and morphing there we go real-time yeah to get that get that result and then you slap a poly wire on it which you wouldn't do you do it at render time but again you can see the levels you got the tight stuff in the middle and the the loosest stuff at the left-hand side and at the top there so yeah that's it that's uh they can end it stuff in Houdini it's one way anyway there's many many ways how am I going for time here it is yep cool all right so I'm going to talk about now is another old thing I built I call it layered destruction I guess but what it is let me just do this real simply for you so usually when you're doing destruction in Houdini like the typical thing to do is just break a thing a heap of times as many times as you need and do it in the most interesting way possible like you know use shadow than your shadow bullying bullying shadow no sorry there's a ton of different ways to deal with Voronoi and get tricks I do these tricks to make it look displaced or whatever they'll always wanted to do this thing where I could just take an object and go let's shatter at 353 618 ten thousand five hundred all in the one time so I just yeah to do it just as one I wasn't happy with that you know what I mean but I wanted to do it not like this where it's just like boom boom boom boom I wanted to do it more like this where I could just sort of ease into it and take it to dust so um yeah I created created this real again two years ago or something this super old set up that really gave me a heart attack when I opened it I thought that I'm not doing that like I'm not rebuilding that it's gonna hurt somebody so um sorry so I did rebuild it though I'm just gonna show you what it is basically it's super it's a long network sorry did you say 10 minutes 13 damn I'm gonna have to do it okay all right so what I used here and that last example I think I just kept kept it a box to hopefully just show it in in a way that's just more obvious as to what's going on because there's a like I said there's a ton of ways to break stuff and do it like that but I just wanted this to be different so um yeah let me try and do this so I'll just step through this network like I said it is quite long I think I'll try and just explain like the main core concept behind this oh I also wanted this to be more of a system that works with a shelled object something with thickness rather than just like you know the full chunky geometry because I think it just looked nicer no I won't go through all the notes actually now that look at it because it's just too too hardcore to explain but I think I'm not even gonna pause it for a second explain something you know when you use the shadow in Houdini if you if you've used it which I'm sure some of you have it's awesome but like when I was doing this and I wanted to break this into discrete little layers I guess with shadow I found because I'm gonna be like stepping through each piece in a loop like I'd end up with too many small pick like the variation was the opposite to what you normally want like you want a lot of variation normally but I wanted to like figure out a way to break it with the nice edges and stuff but have like a way to govern sort of the sizes if that makes sense so what I did was I used a combination of shadow and Bora Knight but I use Voronoi in this different way and what I did was I created a convex hull from the object which it just looks like a box here but I turned on the mountain so you can see it so it does a convex hull right and then like I Voronoi that because the good thing about the Voronoi is that the distributions like super even if you want it to be so that's what I wanted I scaled it up scaled up that object a little bit to just to make sure everything was getting cut so here comes a Voronoi so I cut it up into X amount of pieces then I keep everything that's I just keep the inside I clean it because you've got duplicates on top of one another i remesh it because I'm now I'm gonna displace it so I get more interesting cutting objects so I basically just use it to create cutters if I'm gonna get to the point so you just see I'm adding an oyster position okay and then so that's my cutter setup and now I've got full control over like the cutters and how many like what it looks like all that sort of stuff and and then so I boolean shadow that and save the key the key is here is to create this connectivity attribute here which I'm calling level 1 and that's important because I'm going to keep I'm going to push that through the whole system down to the end so I can maintain those the whole way down so there's my initial break I want to have like three pieces so I've got three pieces and and so then what I do is I come down and I'm not I'm not doing any shattering in the loops I found every time I did that stuff just broke and it was it was hard to control so the next level is shatter again it's the same technique I put in a high-low switch just for you know because this would eventually get piped out into a digital asset again never got to that point that was scared enough as it is to rebuild this thing it was bad so you can see doing the same thing again but of course there's more cutters this time rematching displacing blah blah blah does it again but the thing that's happening here which is the critical part of keeping these layers intact as you go down and you keep breaking is this attribute transfer believe it or not inside the loop so there is a loop happening but I'm not cutting within the loop that makes sense I'm just transferring back the l1 attribute to the the pieces that previously existed and then I cut that up again and you know the lid finishes and you'll see I think I show it you got a ring name everything again after you break it because it gets all wacky and so I created the level 2 connectivity you could see just there and I'm really really normals and stuff but there you go so there's there's level 2 done I don't um from here I just do Goren because um I said it just gets too I've got too messy when I started to loop through all these and tried to shatter them I didn't think it really needed it in this loop actually I'm just met I'm doing a measure I'm checking the area on the pieces because I want to make sure when I go through the next iteration I don't I want to take the small bits out of the equation and I create a threshold with a angle based on the area are you gonna be in the next loops or not and this is just like a safeguard type thing you can see here the green ones are the small pieces they're the ones I want to kick out or not kick out but just put off to the side and merge them back in after the next iteration because there's if I start to add them in it'll go south pretty quick you just add up with too many clusters of tiny tiny pieces so just going through I told you it's long I'm just going through have just sort of inspecting this to just make sure nothing looks weird this is where I split it out the large and small the right hand side looks like it's the the large section and I'm going to break them again as I said the left keep them out to the side there the small guys will just merge them back in at the end and doing the this one's a straight bore and I like it's just scatter I did this you know that the stretch technique a scale technique where you like you pre scale it before it breaks and then suck it back and you get like a long pieces and stuff that's cool so and then attribute transferring those two previous levels back on because you got to remember you got to keep those guys intact or not gonna get access to them later cleanly to create your layered constraints because there's a level three being applied oh sure I'll show you the levels again here so three there you can see like it's significantly different from the other guys and there's two and one yeah when I said layer destruction at the start what I'm more so referring to is not the destruction being the the pieces are being layered it's more about the constraints that are layered the glue constraints and then yeah just doing it again level four this time and then transferring back one two and three hopefully speed this up it's starting to look pretty nasty you like lots of pieces and this will be the final amount of pieces it doesn't have to be the final amount you can keep going if you want you can you can like scatter way more points up above and do what you do whatever you like it doesn't really matter it's not a super slow system II know like I know there's a lot of loops and stuff but it works pretty good and then let's just do another loop just for fun because what would go in finally got about 20 I'm gonna UV the inside phases as I've lost all you know by this point it's all going to hell and I've got nothing so I'm you UV the inside faces and I don't look it'll works it's good the outsides already you vide from way up and start usually a good idea to do this before you break anything so now I'm set I've got inside outside V's that's again looking at those small bits and here we go like we're done with the breaking now there's a little interface I've built like just a proxy thing to tell me how many points we're going to be on each level the small group threshold which will you know keep small or discard and preview mode activates those switch nodes which you might have seen up above but said low and high just for like speed too through as you sort of diving it so yeah this this changes a bit now we go into handling the constraints and this is of course what you need those levels so we go into the first one here and that's just going to give you the first chunk of level one and we just use connect the JSON pieces just to create some primitives and it's got some settings there adjacent points from Joseph's pieces from surface points is the mode but if you look at the constraints against you might not be able to there's perfect separation between the pieces and that's what matters like in assigning like the the attributes to those with a right angle before they go into dots or else it won't know what's going on again my asset to just eat these things away over time as I said it's a lifesaver in terms of time and all that getting stuff like this done and then just blasting away the stuff that's not needed and essentially you've just got this happening for for the you don't need this on the fourth level obviously because at that point everything's let go and it's just free to do its thing but yeah I kind of did a similar thing with the asset on the second layer there and gave it a time offset rather than do it like hard-coded into the the asset itself just it felt like the right thing to do and like keep a similar noise pattern but the the look of this can get really interesting when you do very these are quite a lot so you just just shown me sort of dive through each set of this and at the end I thought you can see this you can see the three colors yep that's what it looks like in dots it's just chewing away at it layer by layer until it lets it go and this looks like it's the the geometry side of things I actually know what this is I did a another layer on top of this which is a particle layer so you could you could break this thing - whatever as much as you want of course you're going to get a speed head but I decided to add another option to turn this into particles at a certain point which is actually what was in that marble textured box that went down to I had gold on a base gold on the interfaces so yeah I I added that in there just in case you know you had to turn something like this around super quick or whatever and he didn't really want to spend the time doing it just with with the pieces this is the the constraint or the dobbs side of it that's a little bit easy like it's just a pop force in in this example with some drag on it then you can see the constraint network there with level one two and three and it plugs in and I'm overriding the I don't know it just said overwrite something or other and and that's the option that basically lets you animate the constraints or or updates the constraints per time step and if you don't have that on if you delete the constraints that won't work basically so I think I am well this is showing what sort of speed you'd expect out of it and that's not stupid it's not super bad like considering this ten and a thousand paces I think it's pretty good you've got shattered edges and stuff which is cool and a ton of variety in in the way that it comes apart here you can just visualize the constraints so you can check it out in that in that view too if you like I chose to catch these out before I rendered them or whatever just because the number was pretty decent this is uh after I've got got all that stuff cash so I'm just showing the we'll move across to the particle side of it I know how evident that is there that there are layers hopefully it's obvious it's getting broken down over time so here I'm just I'm killing out certain pieces I'm actually saying like give me the pieces that have already at like level three or whatever because I don't want to like turn anything else into particles prior to that so that just gives me those guys and then I I did this thing in a wrangle where I just you know created a random frame within a range of frames so I said between that is I can't read that it's like 200 and 265 just blink on and off basically and just spit out some particles like that super straightforward and not technical at all and then it just goes into a particle sim which is pretty much default settings and I use redshift instancing to throw a rock on there with random pay scale and random orientation and that's that's essentially the very last stop in terms of layering with that hopefully I'll show you that here there we go so you you know to get into as much of that as you want or as little do you want to visualize that I'll usually just have this off to the side just to check it out and I'll typically throw a random color per point or something on there and just multiply that in in the shaders to just give it some variation I think that's it I'm done thanks Scott does anyone have any questions alright um quick question about the during approach he just showed really cool stuff and I was wondering if you've played her I was trying to render that with a refractor of material if there's any workflow for essentially fusing and cleaning up the unfractionated that particular setup but typically I'll usually like bring on like the inside faces you know like say if it was you know being eaten away left to right or whatever I'd typically just I don't have those inside faces not not present and just bring them on as the effect wipes on or whatever you know what I mean like is I never found another way to to really avoid that so yeah that's that's what I've done in the past okay cool thanks cheers mate no one else cheers guys thanks so much for checking this out I appreciate your time coming along and yeah if anyone wants to chat afterwards just come and hit me up and I'll be happy to answer any questions thank you very much [Applause]
Info
Channel: Houdini
Views: 75,770
Rating: undefined out of 5
Keywords:
Id: O4XC08Gd9uw
Channel Id: undefined
Length: 44min 47sec (2687 seconds)
Published: Fri Aug 24 2018
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.