**Effects**: Anaglyph, cross-eyed and parallax barrier. **Scenes**: add and remove objects at run-time; fog **Cameras**: perspective and orthographic; controllers: trackball, FPS, path and more **Animation**: armatures, forward kinematics, inverse kinematics, morph and keyframe **Lights**: ambient, direction, point and spot lights; shadows: cast and receive **Materials**: Lambert, Phong, Standard, smooth shading, textures, PBR and more **Shaders**: access to full OpenGL Shading Language (GLSL) capabilities: lens flare, depth pass and extensive post-processing library **Objects**: meshes, particles, sprites, lines, ribbons, bones and more - all with Level of detail **Geometry**: plane, cube, sphere, torus, 3D text and more; modifiers: lathe, extrude and tube **Data loaders**: binary, image, JSON and scene **Utilities**: full set of time and 3D math functions including frustum, matrix, quaternion, UVs and more **Export and import**: utilities to create Three.js-compatible JSON files from within: Blender, openCTM, FBX, Max, and OBJ **Support**: API documentation, public forum **Examples**: Over 150 files of coding examples plus fonts, models, textures, sounds and other support files
Ranked in these QuestionsQuestion Ranking
Pro Feature rich
Effects: Anaglyph, cross-eyed and parallax barrier.
Scenes: add and remove objects at run-time; fog
Cameras: perspective and orthographic; controllers: trackball, FPS, path and more
Animation: armatures, forward kinematics, inverse kinematics, morph and keyframe
Lights: ambient, direction, point and spot lights; shadows: cast and receive
Materials: Lambert, Phong, Standard, smooth shading, textures, PBR and more
Shaders: access to full OpenGL Shading Language (GLSL) capabilities: lens flare, depth pass and extensive post-processing library
Objects: meshes, particles, sprites, lines, ribbons, bones and more - all with Level of detail
Geometry: plane, cube, sphere, torus, 3D text and more; modifiers: lathe, extrude and tube
Data loaders: binary, image, JSON and scene
Utilities: full set of time and 3D math functions including frustum, matrix, quaternion, UVs and more
Export and import: utilities to create Three.js-compatible JSON files from within: Blender, openCTM, FBX, Max, and OBJ
Support: API documentation, public forum
Examples: Over 150 files of coding examples plus fonts, models, textures, sounds and other support files
Pro Fallback canvas rendering
Three.js offers a canvas renderer as a fallback when WebGL is not available.
Pro Helpful and friendly community
Thanks to the recently introduced forum, it is easy to find a community of helpful developers.
Pro Support for most industry standard file formats
Three.js has importers for most of the industry standard files format (obj, mtl, fbx, 3ds, gltf, collada, babylon, playcanvas, stl, vrml, draco and many more), making it easy to author assets in your favourite modelling software and import them for use them in three.js.
Pro Support for physically based rendering
With the introduction of the new MeshStandardMaterial, three.js support physically based rendering (PBR) out of the box allowing for real life quality material and lighting.
Pro Support for special effects and postprocessing
Three.js support many special effects and post-processing filters including particles, lensflare, sprites, real time reflection and refraction and even area based lighting.
Pro Hundreds of officially maintained plugins, extensions, control systems, importers, exporters and special effects
The core of the three.js system is kept to a minimum to reduce file size, however there are also hundreds of extensions maintained in the offical repo on github, along with many free textures, fonts and models. You can find them all here.
Pro Actively developed
Three.js has great project health, with activity on Github daily for bug fixes and new features.
Pro Easy access launcher
That is always accessible on the left side.
Pro Excellent HIDPI support
Pro Best keyboard bindings on desktop
Unity won a recent assessment of productivity for desktop users with the richest collection of keyboard shortcuts. Programs can be easily accessed by clicking on the Ubuntu symbol on the upper part of the launcher, or by pushing the "Windows" button found on most PCs. This opens up a box called the "dash" where users can search by typing in the name of desired programs to open them.
Pro Excellent touch screen compatibility
Unity provides a unified interface for mobile devices and pc.
Pro Appealing to both newbies and power users
Pro Basic tiling support
Basic windows tiling support for windows positioning and resizing with hot corners or keyboard shortcuts (Ctrl + Alt + Numpad), no additional extensions/plugins/software required.
Pro Does not get in the way
Pro Unobtrusive and fast
Content focused, it allow you to work and getting things done with no distractions
Pro Windows filtering
Can search windows with the keyboard by title/software.
Pro Works well with Multiple Monitors
The launcher can very easily be set to show on all screens or on a specific one. The Menu bar shows up on the "current" monitor as expected.
Pro Familiar to both Windows and Mac users
Pro HUD (search and use menus with keyboard)
One of the best and underappreciated features ever, HUD allows you to search and activate menus based on their name and what they do, instead of having to navigate them.
Pro Vertical panels work well with multiple monitors
Unity's vertical panels work perfectly with multiple monitors.
Pro Global menus results in more screen space
Screen estate is maximized thanks to the integration of the title, menu, and unity panel into a single global menu.
Pro Feels very complete
Con Lack of versioning system means that the API changes frequently
Three.js releases a new revision about once a month, and the API can change at any time. This means that a lot of third party help found online is out of date.
Con Poor garbage collection
Memory is quite slow to free up with Three.js, causing issues with the performance of the project.
Note: A lot of work on garbage collection has been done in the last couple of releases, so this may no longer be an issue.
Con Weak visual tools
Three.js has its own editor but it has been weakly developed. It does not support a lot of engine features.
Unity is known to take a lot of system resources. Compiz also ends up frequently eating all your CPU.
Con Lacks customizeability of user interface
It's not possible to switch which side the dock is on, or make it not cover the entire side of the screen.
Con Files Manager lacks many features
The files manager based on gnome nautilus lacks too many features! With the removal of features such as compact view and split screen, newer versions of Nautilus File Manager are not as useful as they once were.
Canonical has ceased the development of the Unity desktop environment, along with the Mir display server. Future versions of Ubuntu will be shipping with Gnome 3. While branches of these are likely going to be maintained by the community, it's difficult to say how strongly these will last considering they were designed specifically for Ubuntu, they had never reached stable release, and more popular alternatives are already present (Wayland in the case of Mir).
Display issues with multiple monitors, particularly external output via laptop DVI/HDMI, and an odd file duplication bug when changing screensavers are the tip of the iceberg here and probably part of the reason Ubuntu have dropped Unity for the Artsy release.
Con Rubbish UX
The start button is right next to the windows button, so when you want to click the unity start button, you often end up closing an application, or clicking the browser back button because those buttons are just pixels away from the start button. Therefore, the UX/UI is very very poorly designed.
Con Does not allow choosing the side of minimize, maximize and close buttons
You can not change the positions of the minimize, maximize and/or close buttons.
Con Performance is bad, even when running on beefy hardware
It starts fast, but quickly slows down once you use the system heavily. Using faster computers doesn't help for some reason. This is running on a laptop designed for Ubuntu (System76 Oryx Pro) with i7 quad core, 32 gb ram, gtx 980m 8gb vram, ssd drive. So it's not a matter of weak or incompatible hardware or misconfigured installation. On this machine, sometimes it takes a couple of seconds to do a window spread animation (Super+w). Doing Alt+Tab is sometimes not as responsive as it should be.
Con Hard to run outside of Ubuntu
Con Very slow when running in a virtual machine
Especially clicking the start button.