npm version Built with TypeScript Build Status


This library provides rotation and translation controls for THREE.JS objects.

Get started now See basic example View it on GitHub

The following features are currently supported:

  • translation controls with 3 degrees of freedom
  • rotation controls with 3 degrees of freedom
  • translation and rotation controls about arbitrary axes
  • plane controls for translation restricted to an arbitrary plane
  • rotation controls in the eye plane
  • free-pick controls for translation in the eye plane
  • fixed mode controls (retain orientation wrt. object rotation)
  • inherit mode controls (make controls follow object rotation)
  • custom objects as controls handles
  • enabling partial controls only
  • multiple instances of controls anchored to a single object
  • different instances of controls anchored to a different objects
  • snap to grid
  • translation limits along individual axes


  • A-frame component
  • tests

About the project


three-freeform-controls is distributed with an MIT license.


When contributing to this repository, please first discuss the change you wish to make via an issue on the Github Repo.