#RiggingInMaya | Part 9 | Basics | Skin Weights, Painting & Editing

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
we are now dangerously close to having a fully rigged character as you can see we've built the skeleton and added a basic rig so all we need to do now is attach the model to it so it will deform and can be animated and that's what we're going to do in this video before we begin I just wanted to mention that you can now download all the source files for each part of this rigging in mayor series so far you can find a link in the description below so now you can go back and follow along as we build this rig before we get into Mae's own tools I have to admit that when it comes to painting weights I don't really use them instead I use a plug-in called NG skin tools so why do I use it well it just offers so much more the mayor's standard tools it has useful features like layers and enhanced mirroring workflow and the smoothing algorithm is a lot sturdier and much more predictable than the one in Maya as you will see in this video you can also easily export and re-import the skin weights - meaning rig revisions aren't a pain now you can download this for free and there's a link in the description below the free non-commercial version allows you to do pretty much everything which is really cooled all apart from use the interactive mirroring options what's even better is victorious the creator of NG skin tools has given me a few licenses to give away to you lucky people so to be ended with a chance of winning one all you have to do is make sure you're subscribing to this channel and leave a comment below what I will do is I will pick the winners at the end of the month as good as ng skinned tools is with this series I wanted to just stick with Maya that's why we all focus purely on its native tools in this video however if you would like a tutorial on ng skin tools itself please let me know in the comments below and I will look into creating one for you let's get the model attached to the skeleton first and this is an easy process simply select the root of the skeleton so in this case it's a cob joint add the model to the selection and go to skin bind skin and open the options just reset these settings so there are a few options here to play around with first you choose what it is you want to bind to the skin by default this is set to joint hierarchy which will use the selected joint and all the joints beneath it in the hierarchy so you don't need to go in and select them all individually selected joints will only bind to the joints you have selected object hierarchy is useful if you have other elements in your rig like locators or groups which need to influence the model too for game development rigs this isn't used as they need to be purely joint based unless you're using blend shapes as well obviously let's leave it at joint hierarchy so we'll bind to the whole skeleton and that's had those fierce elements too so we attach the eyes and teeth geometry to the joints as well so next we need to decide on our bind method this tells Maya how to work out which joints influence which vertices closest distance basically uses the closest joint regardless of where it is in the hierarchy closest hierarchy uses the actual joint hierarchy so it searches for the parent or child of the current joint to use as influences heatmap generally gives better results but it only works on joints which are actually inside the mesh what it does is treat each joint like a heat source emitting white values onto the surrounding geometry geodesic voxels uses a more advanced method for working out to the influencers maiya creates a voxel based version of the mesh to help calculate the skin weights so can be more precise I don't tend to use this method but it's more useful if you have a model with non manifold geometry or intersecting polygons basically if binding the skin with the other methods fails this is a more stable option other options like normalize weights and weight distribution I tend to leave at the default settings especially for a basic model like this with a basic rig again we'll explore more of these when we come to look at more advanced rigging techniques the only other option I'm going to change is to reduce max influence to four this just means that each vertex has a maximum of four joints influence in it and reducing this because it will make the rig more efficient when it goes into a game engine with that said I'd always check with your team first to see what they prefer some may even want it to be less than four depending on the platform you're working on so let's apply that if we move the arm you can see the model now follows you can also see the area under the arm on the side of the torso is also moving with it this is because we use the closest distance bind method so the vertices which are closest to the humerus joint were attached to it let's undo that and we're going to switch to the FK arm just so that I can manipulate the arm a little better I'm going to change the bind method to closest in hierarchy and see if we get a different result we're still getting an influence in this area for some strange reason it's affecting the thigh - maybe that's coming from the hand let's just undo that again and go back to closest distance you can see the difference now there's more of a gradual fall off here whereas the influence was more linear with closest in hierarchy finally let's try heat map you will notice that drop-off rate has now changed to heat map fall-off but for now we will leave it at not 0.68 let's also turn on wireframe so we can see the model a little clearer and apply that as you can see it takes a little longer to calculate so as you can see now the underneath of the arm isn't being influenced as much if we try the head that's moving quite nicely not influence in the upper torso which it might do with the other bind methods the elbow doesn't look too bad either let's look at the fingers this is usually a trouble spot when it comes to the default bind they don't look too bad either they need a bit of work but it's a great starting point and that's all we're looking at at this point it's just a good place for us to then go in and start manipulating the weight values let's look at the tour so now the hits look good maybe a little too soft but again a good starting point you those spine joints look good too you the like looks good although it's affecting the hip you can see how it creates this cavity so we'll need to fix that you the foot roll looks good too although the toes are possibly being influenced by the ankle joint - but again that's easily fixed so we have a really good starting point here so let's dive in and start to edit those weights before I start painting the weight values I like to pause the model but prior to that I make sure I set key in this bind pose I'm just going to switch everything to F care for now and select all the main controls on the left side make sure the time slider is set at zero you switch to the animation menu set and go to key set key we now have a red mark down here to indicate selected controls have a keyframe I'm going to move to frame 1 now what I'm also going to do is make sure or to a keyframe is on this will make sure that when I move the controls a key will be applied automatically so I don't need to manually set it each time if I now pause the leg a key is added on frame 1 so I can quickly get back to that initial buying pause whenever I like without losing this pose I'm just going to pull some more areas of the rig mainly in parts where there is a lot of defamation like the shoulder and elbows we will look at the fingers later the pose is needed for checking how areas are deforming and we do this because when we come to mirror the skin weight from the left side to the right you often have to do it at the bind pose as you will no doubt see you later there will be times when we mirror the weights and it fails in areas Mayers mirror tool doesn't really like paused rigs on a side note if you are using ng skin tools you don't need to do this because the mirror tools are so much better and more accurate before we look at painting weights I want to quickly show you another option let's hide the main model and look at the eyes and mouth if we move the look at control actually I'm just going to disable auto keyframe for now the eyes don't look like they are moving oh right okay so it would help if we actually bound them to the skeleton first I'm just going to use the same values as before which is a heatmap you that's worked really well with the mouth I don't think we need to change anything here if I move the look out control the eyes are moving but a small amount this is likely due to them being influenced by the head and the eyelid joints - there's a quick way to fix this without going into the pain skin weights tool it's like the vertices on the left eye and go to window general editors component editor if you make sure you're in the smooth skins tab you can actually see each vertex and which joints are influencing it you can also see the amount that they're being influenced by we only want the eye model to be influenced by the left eye joint so select all the values beneath it and set those to one you will notice that the other influences have now gone let's update the right eye while we're here too you I'm going to disable x-ray so we can see the eyes a little clearer if I move the control the eyes follow a perfectly and the teeth are fine too time to go back to the main model yep we definitely have some work to do on the head you so I'll just turn AutoKey frame back on as we pose the rig time to look at editing the skin weight values on the body I'll enable x-ray joints again because we need to see them as we work so like the model and go to skin paint skin weights and open the options the first thing you will notice is the model changes color the white area represents the area that current joint is influencing so in this case it's the COG joint and here we have the main window this is a list of all the current influences on the mesh so basically all the joints oops where did that go if you scroll down to the gradient tab you have the option to use a color map instead of the grayscale one and this is probably the default option so this may be what you see first before you go down and deselect it personally I like the grayscale option but then the color option hasn't always been in Maya so it's just what I've been used to I'm not going to dwell too much on the other options in this video simply because for what we are going to do you don't need them I will cover them in more detail in a future tutorial as well as selecting which influence you want to work on in here you can also right-click on the joints themselves and select the influence that way you can also select the vertices which that joint is influencing to this is good if you only want to paint on those and not accidentally paint outside that region there are also options for displaying the local axis display handle and also lock the influence let's look at fixing this area here so the little red circle is the brush we are using and it's a little small at the moment to increase the brush size all you need to do is hold down B and then drag with your left mouse button you can also change the radius in the window but I find this much more intuitive and quicker now we have roughly the right brush size I'm going to swap to a softer brush this will allow me to adjust the influence gradually so I have more control over where I paint when it comes to painting you have four main options replace add smooth and scale I'm going to use add here because I want to build up the influence replace will just replace the influence with a specific value so you're swapping it from one to another I prefer add because more like painting but the problem is you can only increase the value the next important options are the opacity and value sliders if I paint now we are just going to get the maximum influence because both of opacity and value are set to one this pulls the area are out but too much the way you need to think about the opacity and value sliders is that value is the maximum value you want to paint and the opacity controls how much of that value you want to add with each stroke so let's reduce the opacity if I paint now you will see I'm gradually working the area which gives me much more control over the influence just reduce that touch more doing this and using the softest brush means that the center of the red circle will add the full amount but the edges will add less so again I can use this to gradually work on the influence in this area to create a nice crease you let's pose the right leg now so we work on the at full area so just like before we need to star this bind pose at frame 0 so like the Africa controls and then set the time slider to 0 pressing s to quickly add a keyframe move to frame 1 and now we can pause the leg you you can see here that the vertices are all over the place whereas we need them to be aligned correctly this is because they are being influenced by both eyes open the paint scheme weights tool again and make sure the cog is the influence you're working on using add again this time we need to lock the crotch area to the if you move your own legs this area doesn't deform with them well not much anyway so we need to reflect this with the rig and we can follow this all the way around the back you initially if this does not ride but you need to remember that it's the surrounding areas which are wrong now we have those adjusted we need to soften the influence around it so select smooth this time as your pain operation and adjust the opacity to 1 we can now paint around the buttock area to soften that influence giving us a much nicer defamation you this area on the hip is still recessed into the model so switch back to ad we need to also adjust the opacity again and let's fill out that area you that looks better just smooth that our air out a bit more you looks like we need to add a bit more of an influence or peer to and smooth that into the chest you another option with the brushes is to use the flood tool this will apply the current pen operation and the opacity to the whole model so in this instance it would smooth everything for me this works in some areas but not others as you can see so let's undo that and let's just fix that rogue vertex as well let's move up to the next joint and select that as the influence we want to work on and smooth it manually you and then move up to the chest we can fix this wing he's developed while we're here so I'm just going to use add and reduce the opacity again it would be nice if mayor remembered the settings for each pen operation so I didn't have to keep readjusting them take that around the back and remove the influence from the arm you and again smooth the area out you I'm just going to raise the clavicle control now to see how this area deforms just select the clavicle joint so we can see here that the clavicle is in fact influencing the abdomen area too so that needs removing this time I'm going to use replace as my painting operation and if I set value to zero this time and opacity to one so we're essentially painting a full value of zero this will remove that influence the surrounding area looks a little harsh so let's soften that next this time I'm going to use a slightly harder brush so I get more of the smooth influence you that's better let's move on to the humorous now and soften that too so it looks like we have some more rogue waves and this is one of the problem with Mayer's tools especially when you use smooth some weights can end up in areas you don't expect okay I think we need a bit more of an influence on the shoulder so we get more of a crease when it's raised you that's better so that test that you'll notice that I'm not raising the shoulder any higher than this that's because we can't physically do that not with just the shoulder joint anyway once it reaches this level the clavicle takes over to help raise the shoulder higher it's good to keep these limitations in mind when you're painting weights so you don't cater for poses that aren't reachable let's have another look around just soften this a bit you okay so let's pose the right arm now just as we did with the leg we need to set a key at the bind pose on frame 0 and then we compose it at frame 1 remember to do the clavicle too you we can now clearly see the area we have corrected on his left and the default weights still on the right side the good thing is we don't need to redo all that work to try and match it up we can simply mirror the weights across go to skin maryska weights and open the options so first we need to dictate the direction we want to mirroring so setting this to wise edge will mirror across the y and z axes what's handy is if we change this mayor tells us below which way it will work so we can see that it will work across the x axis and go from the positive side to the negative side one thing to note is if you are mirroring between two separate models this needs to be disabled below that we can choose how the weights are transferred using the model as a reference closest point on surface will try match each side vertex to vertex and because this model was mirrored this would be the best option for us brickest uses a rare tracing algorithm to work out the weight values between the two sides or models closest component finds a closest vertex or control vertex if you are using NURBS surfaces and uses that value directly if you're using a model with different topology on either side I would suggest experimenting with all of these options to get the best results for your model you can then choose how the joint hierarchy is used to with the influence Association drop down boxes closest joint is again probably the best option as a skeleton was also mirrored so it will match the closest joint on the right side one-to-one is used on identical skeleton hierarchies and label will use a predefined label which you can set for each joint as we don't have labels this isn't useful for us let's just use the default values and see what we get that looks good and I do sound surprised for a reason traditionally mayor doesn't do well with mirroring weights on a posed rig this is why we needed to star the bind pose so we could quickly go back a mirror the ways when we need it you this doesn't look too bad though so there's a crease under the chest here so let's soften that next and again I'm just working on the left side you and it looks like the abdomen joint is also influencing the upper chest so we need to remove that tube again this is an issue with Mayer's smoothing tool something which ng skin tools handles in a much better way you so that's done and I'm just working on the left side because remember we're just going to use a mirror tool to copy the weights across to the right side you this area in the abdomen looks too soft and needs a bit of a crease so let's adjust that next you has changed the cog influence too you and soften this area up here that looks better so let's mirror those weights you let's move up to the elbow now and the heatmap did a good job here but it's maybe a bit too harsh and the elbow is a bit too angular I'm going to select the humerus and pull some of the influence back towards it to close that gap you maybe smoothing would be better you okay let's select the radius now and add more of an influence up here we have the extra topology to play with so we may as well use it you let's move around and look at it in an elbow now maybe remove some of the influence here to fill this out and stop it collapsing as much you we'll just gently ease this area out - again - stop it folding in on itself so much you it's a delicate balance in areas like this especially with game models you want to retain the form of the arm but minimize the amount of intersection you will get you okay let's take a look at the head next you so the head moves around okay and the neck but there's an obvious issue with the jaw let's keep that open and select the head influence as you can see I initially thought the head was okay but these gray areas tell me the head isn't fully following the head joint I'm just going to use replace and set opacity and value to want and fix those areas around the face you and also the upper lip you actually I'm just going to switch to add just so I can work with a bit more care in this area we don't want the upper lip to be fully weighted to the head instead we need a gradual curve down to the jaw I'm going to switch the jar now and do the same just make sure these are fully weighted to it with that done I can now use smooth to go around and soften the lips you let's now mirror that and as you can see this is one of those instances where mayor's mirror tool fails while the model is posed so let's go back to frame 0 and the buying pause and try again that looks like it's worked although we now have this vertex in the middle to fix nope that's too much the lower lip is too flat so needs to have more of a curve in it let's see if we can soften that by adding some influence to the head joint oops maybe reduce the opacity first okay that's a little better let's just smooth that out too you remember those changes and again it's not worked so let's try it with the bind pers that's better and looks a natural let's look at the rest of the head now and make sure it's weighted to the head joint you and maybe add a bit more of a crease here you let's move to the neck and soften these you and maybe reduce its influence over the shoulder you and go back to the buying pearls and mirror the weights you let's have another look around the head you the neck does look too soft so we might want to update that you that's just add a bit more influence under here so it doesn't move in as much you that looks a bit strange now so let's soften it back down a touch you and remove some of the Jar influence instead there's a lot of experimenting when it comes to parenting weights trying to get the best defamation out of your model by adjusting the joints influence over the vertices some things work and some things don't you we need to reset the jar now so it's not posed on frame zero which is a bind purse okay so that's looking good so far and at the moment I'm just doing an initial first pass on these weights I will probably come back and rework them later for the purpose of the video I don't want to spend hours on this I just want to get across the basic process time to move on to the fingers and like the rest of the body we need to pause them first before we work on them at the moment that you're not too bad but as we saw where the head looks can be deceiving let's move this control to the metacarpal rotates to you okay let's work on the wrist first and fill this out a little you tidy this up a bit and smoothie - like the shoulder the wrist is a tricky area to get right on a basic rig like this but we will talk more about that later on to the metacarpal now let's just soften the influence this has around the edges you I'll select the first finger joint now and see how that's looking it looks like it's affecting the finger next to it so I'm just going to use replace now to just remove that and let's remove it from the next section of the finger but first I'm going to reduce the size of the joints so I can see what I'm doing you okay so we need each section of the finger to not be influenced by anything else just at this stage anyway I'll switch to the next joint now and remove its influence from the other sections you I'm going to leave the knuckle pass because we do need to blend between the two so we get a nice curve you now we can look at the areas where the finger bends you maybe just use smooth to soften these and get a better defamation you yeah that's better move to the next one and see how it looks this could maybe use a few small adjustments to you on to the main knuckle now and we can bring that forward you something like that and soften the top here you let's take a look at the film now again we just need to soften this area a bit to make for a smoother defamation just bend this joint so we can see how it's looking you just going to remove some of it influence from the base here you this area's collapsing need to bring that back out you just going to make sure the end of the thumb is fully weighted to this joint and not the end joint you I need to tackle this sharp angle here let's try smoothing this you okay good that's better so that's the index finger and thumb done or should I say the first pass done I could spend more time on them but you get the general idea of how we work on those I'm going to reset the index finger now and move on to the middle finger just so before we need to pause it first so we see how it deforms I'll reset the thumb too you the process is exactly the same we need the bulk of each section of the finger to be fully weighted to each joint once that's done you can go in and soften the areas where they bent because we're just repeating the same process now for each finger our speed up the video so it's not boring for you to watch you there is another way you can work on the fingers and that's to use the vertices directly select the vertices of the top of the pinky and then open the paint scheme weights tool so like the pinky three the influence because you've selected the vertices they will be the only parts of the finger that will be affected as you paint so if you use replace as a painting operation and set opacity and value to one you can quickly flood the end of the finger rather than painting it we can now move up to the next section select the vertices the correct joint influence and flutters and repeat that for the next section too you that was quicker and has given us some clean ways to work with now all we need to do is go in and soften the bends and creases you we also need to work on the metacarpal area to to soften that and fill out the palm you okay well looks good for now right let's move on to the leg you we already adjusted the hip area so let's look at the knee the topology here doesn't look good it's not neat enough as it deforms let's try smoothing it and see if that helps clean it up and also soften the bend you we've maybe gone too far on the inside of the thigh so let's fill that back out again you so we have this nasty angle on the ankle here so let's just soften that to you okay that's better I can see that the tours aren't fully weighted to the ball joint the big toe is slightly gray I'll just correct those now so they follow the joint fully as a toe bends you we also need to remove the influence from the rest of the foot you maybe just soften this - oops okay doesn't like that let's try another approach I'll switch to ad instead and just increase the foots influence ever so slightly here you okay good that bends nicely let's just reset the pearls and mirror the ways to copy everything we've done across to the right side and give that a quick test okay looks good I'll also check the finger weights mirrored across correctly to you okay they look okay the palm needs a tweak but I can come back to that so this stage the main body is done or done enough for this section of the video so let's go back to the head now I want to see how the eyes are working because we still need to work on the eyelids I'm going to reset the pause for now so we can just focus on the eyelids and I'm going to move the upper eyelid down so we can see the model move has repaired the weights so I have basic weights here to show the current influence and if I move the control you can see the eyelid moving I'm just going to isolate the main model for now because we will need to work on the eyelid from all directions even from looking inside the head so I don't want the eye geometry in there we want the inner part of the eyelid to be fully weighted to the eyelid joint so it needs to be white this will give us a good idea of how far the island is moving when the control moves there's a good possibility we need to adjust the rig so it moves the correct amount you so I know I move the control quite a bit so the eyelid obviously needs to move further than this select the eyelid control and open the left eyelid upper multi-node in the channel box if you remember in the previous video we added these values the 250 and minus 250 to act as a multiplier for the controls movement we now know these need to be increased so the eyelid moves more let's change that to minus 500 instead that's better but it needs to move more how about - 750 mmm okay let's adjust the control so it's moved down to about halfway that should do ok let's change this again to minus 1000 that looks better the eyelid control is now halfway down and so is the eyelid geometry so let's update the other values too and repeat that for the lower controlled updating the values to 1000 you now we could work more on the eyelid weights but first lower the control to close the eye I realize that naturally your lower eyelid raises a bit too when you blink but we are just working on the upper one for now we can now go in and smooth out the eyelid weights so they are distributed a bit more evenly across the surface you what we can also do is train adjust these values so the eyelid closes properly - something like that you let's move the lower eyelid up this time and start to add the influence in for that you let's get rid of that so just like the upper lid we want these inner polygons to be fully weighted to the lower eyelid joint you these colonists can just have a small influence for now you as you can see we have random influences all over the body so we need to remove these if you find you have these smaller influences on your model you can always try to prune them navigate to the skin menu and work your way down to prune small weights and open the options this will go through the model and remove any influences below your set value so in this instance it's 0.01 and then it redistributes them to stronger nearby influences let's see if that's cleaned it up if not we might need to increase the value but the problem then is we run the risk of affecting other areas and removing weights that we've already painted so they're still there so pruning them maybe didn't work so that's just going and remove them manually as a general rule though you should use the prune small weights tool when you're working on skin in a model to ensure those small weights are removed they can be expensive if you're working on a game model let's move that up a bit to close the eye maybe a bit more you unlike we did with your eyelid smooth it to redistribute the topology you also are just from the inside to get a better fit you okay so let's reset those joints and disable the wireframe so we can see how these look or prilae looks good and the lower one looks good too we can also widen the eyes too if we want now the test will be if mail all letters mirror the weights if you remember we move the eyelid joints away from the actual I join so this should prevent the weights being transferred onto the wrong joints okay that looks like it's worked although we do need to update the values so change that to 1000 and those to minus 1000 undo the lower eyelid to you okay they work great you if we move the lookout control the should follow the ice to looks a bit weird but I know what's causing that let's reduce the amount the eyelids follow the ice first maybe not point one five that looks better but I think the issue is that the eyelids are tilting to so they're rotating around the z-axis we can easily change this by reducing the number in the multiply divide node let's just try noir point one yep that works too so let's just take a step back now and have a quick look at removing that twist we have on the eyelids so it's quite an easy fix all you need to do is select the eyelid joint open up the multiply divide node and set the input to Z to 0 so that's just going to remove the influence that we have on it which is in turn going to read remove the twist there we go that's better that twist is removed and now on the eyes move and the eyelids move it looks a lot more natural right this is looking good so we've gone through and painted all the weight and this guy is ready to be animated obviously I've kind of rushed through these and there are some areas that need tweaking but I hope you've got the general idea behind my workflow you also have to remember that this is a game model so some areas aren't going to look as smooth as they would be if this was a high-resolution model but all the processes that I've gone through and discussed in this video so far can easily be used on a high-resolution model or a subdivision surfaces model I'll just switch eye care back on so it can move him around now and we can wiggle his hips and the model follows so there's a bit that needs adjusting so after all these videos you now have a fully rigged character but with this being a basic rig it does have its disadvantages one of the big issues with it are the lack of any rural joints if we look at the shoulder it will happily rotate around the Z and X axes but when you rotate around the Y so when the arm twists you get this unnatural defamation around the shoulder if you look at your own arm as it twists you will see that the shoulder doesn't rotate that way instead the arm twists around the bicep we have the same issue at the wrist the rotations are fine but when it comes to the twist the wrist breaks again if you rotate your own wrist you will see that when it twists is actually the forearm that deforms and twists not the wrist this even happens with the thigh again we get an unnatural twist and it could be applied to the ankle area too so what we have to do is add what's known as drawl joints to help facilitate these rotations and make the arm and leg deform in a much more natural way and this is what we're going to do in the next video for now though you have a nice rig that's ready to go I'd spend some more time checking how it deforms and adjusting the weights like here under the arm now it's twisting we can see it needs some more work we can even use the fist attribute you added earlier to quickly pers the hand although now this fingers are skinned we can see that it needs adjusting remember you can do this easily in the graph editor as demonstrated previously even the foot controls look good so I hope you've enjoyed this video and if you have please let me know in the comments below I always appreciate feedback also let me know if you have any questions and also tell me what future videos you would like to see remember that the source files for all the videos so far and now available to download so you can get those from the links in the description download them and then you can follow along with each step as we build this rig as always remember to like this tutorial and subscribe to my channel to keep up to date with future videos this is aunt c GI signing off and i will see you on the next one [Music] you
Info
Channel: antCGi
Views: 55,063
Rating: undefined out of 5
Keywords: rigging, maya, autodesk, maya3d, rigging in maya, utility nodes, rig, node editor, nodes, Build Controls, 2019, maya 2019, Spine, Head, Jaw, Eye, Eyes, Eyelids, Automatic Eyelids, Multiply Divide Node, Pelvis, Waist, Abdomen, Sternum, Shoulders, Chest, Torso, gamedev, game art, game development, game rig, Paint, Paint Skin Weights, Mirror Weights, Prune, Skinning, ngSkinTools, Smooth, Replace, Add
Id: 4cBlRF_dr90
Channel Id: undefined
Length: 77min 33sec (4653 seconds)
Published: Tue Sep 10 2019
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.