I came across this thread again when looking what ammo works by default with.
Have you considered precision issues for mobile devices? On many 1 is not enough running out of precision, animations getting distorted massively not far from the origin. What worked best so far is 1 unit = 1 centimeter.
There are many conditions you run out of precision distant from the origin, while it doesn’t happen with larger scales even if that means the distance is larger. However as i mentioned i use a coordinate system for infinite space so on GPU the numbers stay always reasonable, but for regular scenes it works well without.
I think it would be good if THREE would have a option on the render for world scale to consider such cases, as for the web and low precision cases with mobile devices this can really become an issue.
In my case it doesn’t matter as i use a custom deferred lights pipeline. For “small” scenes with a 1u:1m it should be a nonissue, but i think it was on a iPad animations only worked within a relatively short range till they started jittering to completely distort with limbs moving miles apart ^^
Some industry software uses 1u:1c too which in my case is Cinema 4D.
What I meant, and which @looeee hinted at, is that 1 unit only means 1 unit. It does not mean 1 meter; does not mean 1 foot; does not mean 1 anything. It only means 1 unit and nothing more.
It is then up to you what 1 unit represents (and @looeee mentioned that most people, by convention, usually pick 1 unit to mean 1 meter withing their 3D scenes).
As an example, I set up my 3D scenes so that by default 1 unit means 1 pixel on the screen (based on something similar like that example I last mentioned above) when I want to make graphics in a way similar to CSS where we can specify their size in “px” units (pixels). Using units that represent screen pixels can be more practical when making UIs that are sized relative to the screen size.
Ultimately it is up to you how you treat 1 unit, and Three.js itself does not have any concept of meters, feet, pixels, etc, built into it.