I would suggest that ThreeJS officially adopt SI units for its physical variables including distance, time, mass, light intensity, etc.
Right now ThreeJS is trying to be unit agnostic. While I can understand the motivation, it makes it harder to combine assets together in a ThreeJS scene — artists need to come up with their own standards. Also many materials only look proper if you adjust their properties correctly relative to the scale of the object — normal and bump maps in particular.
Also if you pick a non-standard unit, it can be hard to integrate physics properly. If you make 1 ThreeJS distance unit = 1km. You can not use SI units for mass specification in you are using ammo.js — you need to also adjust those to match your unit scaling.
Unreal Engine 4: 1 Unreal Unit = 1 CM.
Unity 3D: No official unit system, but it is recommended to use 1 Unity Unit = 1 Meter if you want to use physics.
Softimage: 1 Softimage Unit = 10 CM.
Clara.io: 1 Clara Unit = 1 Meter.
3DS Max: Various units, which causes a lot of conversion work.
My recommendation is to recommend standard SI units for all quantities:
- 1 Meter for distances.
- 1 Meter/Second for velocities.
- 1 Meter/Second^2 for accelerations.
- 1 Kilogram for mass.
- 1 Lumen for light intensity when using physically based lights.
I think using standard SI units makes everything work together nicely. And it will lead to further maturation of the ThreeJS content pipeline, and increased interchangability.