# yomotsu/camera-controls

A camera control for three.js, similar to THREE.OrbitControls yet supports smooth transitions and more features.

Repository: https://github.com/yomotsu/camera-controls
Canonical: https://ross.abutalabs.com/products/camera-controls
Homepage: https://yomotsu.github.io/camera-controls/
Language: TypeScript
License: MIT
License Family: permissive
Topics: threejs, camera, orbitcontrols
Last push: 2026-02-02T04:58:37+00:00

## Health v2 (maintenance only)
Score: 65/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 65, release rhythm 45, longevity 100
- inputs: {"age_days": 3334, "days_push": 212, "days_rel": 290, "gap_med": 38.0, "n_releases_24m": 7}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2422, forks 300 (observed 2026-08-28T04:06:50.663256+00:00)

## What it is
A TypeScript camera control library for three.js that extends the capabilities of THREE.OrbitControls with smooth transitions, configurable input mappings, and advanced camera operations like fitting to objects, collision detection, and path animation. It works in plain three.js projects as well as react-three-fiber via drei.

## Use cases
- add orbit controls to a three.js scene with smooth damped transitions
- animate camera moves with easing and durations in a 3D web app
- fit a three.js camera to a bounding box or selected object
- implement first-person or third-person camera in a browser 3D game
- prevent the camera from passing through walls with collision detection
- configure custom mouse, touch, and keyboard camera gestures
- use camera controls inside react-three-fiber

## When to choose
- you need richer camera behavior than THREE.OrbitControls provides
- you want programmatic, tweened camera transitions (fit, dolly, rotate, pan)
- you need configurable input mappings, boundaries, or collision handling
- you're building 3D viewers, configurators, or games with three.js

## When to avoid
- you only need basic orbit/zoom/pan and OrbitControls is sufficient
- you're not using three.js or a WebGL 3D framework
- you need camera controls for a non-web engine like Unity or Unreal

## Facets
- artifact type: library
- maturity: active
- function: animation, graphics, ui-components
- domain: web-development, graphics, frontend
- platform: browser, cross-platform
- tags: threejs, camera-controls, orbit-controls, 3d, webgl, typescript, react-three-fiber, game-development, nodejs

## Member repositories
- yomotsu/camera-controls (main) score 65

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:50.663256+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T02:33:02.363579+00:00, confidence not recorded.
  - readme: https://github.com/yomotsu/camera-controls (fetched 2026-08-28T04:06:50.663256+00:00, sha dfcadefa9b68)
  - homepage: https://yomotsu.github.io/camera-controls/ (fetched 2026-08-29T10:13:39.788854+00:00, sha fc008c86baff)
- Data as of 2026-08-30T08:39:29.467469+00:00.
