All Mods Resource Packs Data Packs Shaders Modpacks Plugins
Perspective API

Perspective API

by leawind • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

Usage

  • Hold F5 to open perspective wheel.
  • Right click when holding F5 to enter configure mode, drag the icons to enable/disable

Wheel menu


Perspective API

Perspective API

Modrinth Downloads CurseForge Downloads

Perspective API is a camera perspective management framework for Minecraft client-side mods. It provides standardized interfaces using the JOML library to handle camera states (position, rotation, FOV), decoupled from Minecraft internals.

Documentation | 文档

Demo Mod

How to Install Perspective API (Mod)

Perspective API by leawind is verified for Fabric, Forge, Neoforge across Minecraft versions 1.20.1, 1.20.4, 1.20.6, 1.21, 1.21.1, 1.21.11, 26.1, 26.1.1 (latest release: 1.5.0-beta+neoforge-26.2, file size: 259 KB). Follow the steps below to install it safely from ModCraft.tv:

  1. Click the Download button above and select your Minecraft version (1.20.1, 1.20.4, 1.20.6, 1.21, 1.21.1, 1.21.11, 26.1, 26.1.1) and platform (Fabric, Forge, Neoforge).
  2. Make sure you have the compatible loader or environment installed for Fabric, Forge, Neoforge.
  3. Move the downloaded Perspective API file into your Minecraft .minecraft/mods folder and launch the game.

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
26.2
Neoforge
3mo ago 1
26.1.x
Neoforge
3mo ago 1
26.2
Fabric
3mo ago 1
26.1.x
Fabric
3mo ago 1
1.21.11
Neoforge
3mo ago 1
1.21.11
Fabric
3mo ago 1
1.21.x
Neoforge
3mo ago 1
1.20.6
Neoforge
3mo ago 1
1.21.x
Fabric
3mo ago 1
1.20.6
Fabric
3mo ago 1
1.20.4
Neoforge
3mo ago 1
1.20.4
Fabric
3mo ago 1
1.20.1
Forge
3mo ago 1
1.20.1
Fabric
3mo ago 1
26.2
Neoforge
3mo ago 1
26.2
Fabric
3mo ago 1
26.1.x
Neoforge
3mo ago 1
26.1.x
Fabric
3mo ago 1
1.21.11
Neoforge
3mo ago 1
1.21.11
Fabric
3mo ago 1
1.21.x
Neoforge
3mo ago 1
1.21.x
Fabric
3mo ago 1
1.20.6
Neoforge
3mo ago 1
1.20.6
Fabric
3mo ago 1
1.20.4
Neoforge
3mo ago 1
1.20.4
Fabric
3mo ago 1
1.20.1
Forge
3mo ago 1
1.20.1
Fabric
3mo ago 1
26.2
Neoforge
3mo ago 1
26.2
Fabric
3mo ago 1
26.1.x
Neoforge
3mo ago 1
26.1.x
Fabric
3mo ago 1
1.21.11
Neoforge
3mo ago 1
1.21.x
Neoforge
3mo ago 1
1.21.11
Fabric
3mo ago 1
1.21.x
Fabric
3mo ago 1
1.20.6
Neoforge
3mo ago 1
1.20.6
Fabric
3mo ago 1
1.20.4
Neoforge
3mo ago 1
1.20.4
Fabric
3mo ago 1
1.20.1
Forge
3mo ago 1
1.20.1
Fabric
3mo ago 1
26.2
Neoforge
3mo ago 1
26.2
Fabric
3mo ago 1
26.1.x
Neoforge
3mo ago 1
26.1.x
Fabric
3mo ago 1
1.21.11
Neoforge
3mo ago 1
1.21.11
Fabric
3mo ago 1
1.21.x
Neoforge
3mo ago 1
1.21.x
Fabric
3mo ago 1
1.20.6
Neoforge
3mo ago 1
1.20.6
Fabric
3mo ago 1
1.20.4
Neoforge
3mo ago 1
1.20.4
Fabric
3mo ago 1
1.20.1
Forge
3mo ago 1
1.20.1
Fabric
3mo ago 1
26.2
Neoforge
3mo ago 1
26.2
Fabric
3mo ago 1
26.1.x
Neoforge
3mo ago 1
26.1.x
Fabric
3mo ago 1
1.21.11
Neoforge
3mo ago 1
1.21.11
Fabric
3mo ago 1
1.21.x
Neoforge
3mo ago 1
1.21.x
Fabric
3mo ago 1
1.20.6
Neoforge
3mo ago 1
1.20.6
Fabric
3mo ago 1
1.20.4
Neoforge
3mo ago 1
1.20.4
Fabric
3mo ago 1
1.20.1
Forge
3mo ago 1
1.20.1
Fabric
3mo ago 1
26.2
Neoforge
3mo ago 1
26.2
Fabric
3mo ago 1
26.1.x
Neoforge
3mo ago 1
26.1.x
Fabric
3mo ago 1
1.21.11
Neoforge
3mo ago 1
1.21.11
Fabric
3mo ago 1
1.21.x
Neoforge
3mo ago 1
1.21.x
Fabric
3mo ago 1
1.20.6
Neoforge
3mo ago 1
1.20.6
Fabric
3mo ago 1
1.20.4
Neoforge
3mo ago 1
1.20.4
Fabric
3mo ago 1
1.20.1
Forge
3mo ago 1
1.20.1
Fabric
3mo ago 1
26.2
Neoforge
3mo ago 1
26.2
Fabric
3mo ago 1
26.1.x
Neoforge
3mo ago 1
26.1.x
Fabric
3mo ago 1
1.21.11
Neoforge
3mo ago 1
1.21.11
Fabric
3mo ago 1
1.21.x
Neoforge
3mo ago 1
1.21.x
Fabric
3mo ago 1
1.20.6
Neoforge
3mo ago 1
1.20.6
Fabric
3mo ago 1
1.20.4
Neoforge
3mo ago 1
1.20.4
Fabric
3mo ago 1
1.20.1
Forge
3mo ago 1
1.20.1
Fabric
3mo ago 1
26.2
Neoforge
3mo ago 1
26.2
Fabric
3mo ago 1
26.1
Neoforge
3mo ago 1
26.1
Fabric
3mo ago 1
1.21.11
Neoforge
3mo ago 1
1.21.11
Fabric
3mo ago 1
1.21
Neoforge
3mo ago 1
1.21
Fabric
3mo ago 1
1.20.6
Neoforge
3mo ago 1
1.20.6
Fabric
3mo ago 1
1.20.4
Neoforge
3mo ago 1
1.20.4
Fabric
3mo ago 1
1.20.1
Forge
3mo ago 1
1.20.1
Fabric
3mo ago 1
26.2
Neoforge
3mo ago 1
26.2
Fabric
3mo ago 1
26.1
Neoforge
3mo ago 1
26.1
Fabric
3mo ago 1
1.21.11
Neoforge
3mo ago 1
1.21.11
Fabric
3mo ago 1
1.21
Neoforge
3mo ago 1
1.21
Fabric
3mo ago 1
1.20.6
Neoforge
3mo ago 1
1.20.6
Fabric
3mo ago 1
1.20.4
Neoforge
3mo ago 1
1.20.4
Fabric
3mo ago 1
1.20.1
Fabric
3mo ago 1
1.20.1
Forge
3mo ago 1
26.2
Neoforge
3mo ago 1
26.2
Fabric
3mo ago 1
26.1
Neoforge
3mo ago 1
26.1
Fabric
3mo ago 1
1.21.11
Neoforge
3mo ago 1
1.21.11
Fabric
3mo ago 1
1.21
Neoforge
3mo ago 1
1.21
Fabric
3mo ago 1
1.20.6
Neoforge
3mo ago 1
1.20.6
Fabric
3mo ago 1
1.20.4
Neoforge
3mo ago 1
1.20.4
Fabric
3mo ago 1
1.20.1
Fabric
3mo ago 1
1.20.1
Forge
3mo ago 1
26.2
Neoforge
3mo ago 1
26.2
Fabric
3mo ago 1
26.1
Neoforge
3mo ago 1
26.1
Fabric
3mo ago 1
1.21.11
Neoforge
3mo ago 1
1.21.11
Fabric
3mo ago 1
1.21
Neoforge
3mo ago 1
1.21
Fabric
3mo ago 1
1.20.6
Neoforge
3mo ago 1
1.20.6
Fabric
3mo ago 1
1.20.4
Neoforge
3mo ago 1
1.20.4
Fabric
3mo ago 1
1.20.1
Fabric
3mo ago 1
1.20.1
Forge
3mo ago 1
26.2
Neoforge
3mo ago 1
26.2
Fabric
3mo ago 1
26.1.x
Neoforge
3mo ago 1
26.1.x
Fabric
3mo ago 1
1.21.11
Neoforge
3mo ago 1
1.21.11
Fabric
3mo ago 1
1.21
Neoforge
3mo ago 1
1.21
Fabric
3mo ago 1
1.20.6
Neoforge
3mo ago 1
1.20.6
Fabric
3mo ago 1
1.20.4
Neoforge
3mo ago 1
1.20.4
Fabric
3mo ago 1
1.20.1
Forge
3mo ago 1
1.20.1
Fabric
3mo ago 1
26.2
Neoforge
4mo ago 1
26.2
Fabric
4mo ago 1
26.1.x
Neoforge
4mo ago 1
26.1.x
Fabric
4mo ago 1
1.21.11
Neoforge
4mo ago 1
1.21.11
Fabric
4mo ago 1
1.21
Neoforge
4mo ago 1
1.21
Fabric
4mo ago 1
1.20.6
Neoforge
4mo ago 1
1.20.6
Fabric
4mo ago 1
1.20.4
Neoforge
4mo ago 1
1.20.4
Fabric
4mo ago 1
1.20.1
Fabric
4mo ago 1
1.20.1
Forge
4mo ago 1
26.2
Neoforge
4mo ago 1
26.2
Fabric
4mo ago 1
26.1.x
Neoforge
4mo ago 1
26.1.x
Fabric
4mo ago 1
1.21.11
Neoforge
4mo ago 1
1.21.11
Fabric
4mo ago 1
1.21
Neoforge
4mo ago 1
1.21
Fabric
4mo ago 1
1.20.6
Neoforge
4mo ago 1
1.20.6
Fabric
4mo ago 1
1.20.4
Neoforge
4mo ago 1
1.20.4
Fabric
4mo ago 1
1.20.1
Fabric
4mo ago 1
1.20.1
Forge
4mo ago 1
26.2
Neoforge
4mo ago 1
26.2
Fabric
4mo ago 1
26.1.x
Neoforge
4mo ago 1
26.1.x
Fabric
4mo ago 1
1.21.11
Neoforge
4mo ago 1
1.21.11
Fabric
4mo ago 1
1.21
Neoforge
4mo ago 1
1.21
Fabric
4mo ago 1
1.20.6
Neoforge
4mo ago 1
1.20.6
Fabric
4mo ago 1
1.20.4
Neoforge
4mo ago 1
1.20.4
Fabric
4mo ago 1
1.20.1
Forge
4mo ago 1
1.20.1
Fabric
4mo ago 1
26.2
Neoforge
4mo ago 1
26.2
Fabric
4mo ago 1
26.1.x
Neoforge
4mo ago 1
26.1.x
Fabric
4mo ago 1
1.21.11
Neoforge
4mo ago 1
1.21.11
Fabric
4mo ago 1
1.21
Neoforge
4mo ago 1
1.21
Fabric
4mo ago 1
1.20.6
Neoforge
4mo ago 1
1.20.6
Fabric
4mo ago 1
1.20.4
Neoforge
4mo ago 1
1.20.4
Fabric
4mo ago 1
1.20.1
Forge
4mo ago 1
1.20.1
Fabric
4mo ago 1
26.2
Neoforge
4mo ago 1
26.2
Fabric
4mo ago 1
26.1.x
Neoforge
4mo ago 1
26.1.x
Fabric
4mo ago 1
1.21.11
Neoforge
4mo ago 1
1.21.11
Fabric
4mo ago 1
1.21
Neoforge
4mo ago 1
1.21
Fabric
4mo ago 1
1.20.6
Neoforge
4mo ago 1
1.20.6
Fabric
4mo ago 1
1.20.4
Neoforge
4mo ago 1
1.20.4
Fabric
4mo ago 1
1.20.1
Fabric
4mo ago 1
1.20.1
Forge
4mo ago 1
26.2
Neoforge
4mo ago 1
26.2
Fabric
4mo ago 1
26.1.x
Neoforge
4mo ago 1
26.1.x
Fabric
4mo ago 1
1.21.11
Neoforge
4mo ago 1
1.21.11
Fabric
4mo ago 1
1.21
Neoforge
4mo ago 1
1.21
Fabric
4mo ago 1
1.20.6
Neoforge
4mo ago 1
1.20.6
Fabric
4mo ago 1
1.20.4
Neoforge
4mo ago 1
1.20.4
Fabric
4mo ago 1
1.20.1
Forge
4mo ago 1
1.20.1
Fabric
4mo ago 1
26.2
Neoforge
4mo ago 1
26.2
Fabric
4mo ago 1
26.1
Neoforge
4mo ago 1
26.1
Fabric
4mo ago 1
1.21.11
Neoforge
4mo ago 1
1.21.11
Fabric
4mo ago 1
1.21
Neoforge
4mo ago 1
1.21
Fabric
4mo ago 1
1.20.6
Neoforge
4mo ago 1
1.20.6
Fabric
4mo ago 1
1.20.4
Neoforge
4mo ago 1
1.20.4
Fabric
4mo ago 1
1.20.1
Forge
4mo ago 1
1.20.1
Fabric
4mo ago 1
26.2
Neoforge
4mo ago 1
26.2
Fabric
4mo ago 1
1.21.11
Neoforge
4mo ago 1
1.21.11
Fabric
4mo ago 1
26.1
Neoforge
4mo ago 1
26.1
Fabric
4mo ago 1
1.21
Fabric
4mo ago 1
1.21
Neoforge
4mo ago 1
1.20.6
Fabric
4mo ago 1
1.20.6
Neoforge
4mo ago 1
1.20.4
Neoforge
4mo ago 1
1.20.4
Fabric
4mo ago 1
1.20.1
Forge
4mo ago 1
1.20.1
Fabric
4mo ago 1
# 1.5.0-beta

## Breaking Changes

  • feat(api): add modifier perspective base state (7a1e37d)
  • PerspectiveModifier.apply now receives PerspectiveModifierContext instead of PerspectiveContext.

Update modifier implementations to use PerspectiveModifierContext.
  • fix(api): resolve perspective state during rendering (b6ef7e1)
  • remove clientTickWhenActive from PerspectiveBehavior and PerspectiveSwitcherBehavior. Perspective availability is no longer cached per client tick.

Implementations that update state on client ticks must subscribe to their loader event and return cached values during rendering.
  • refactor(api): rename PerspectiveBehavior camera state pipeline methods (b151b2f)
  • PerspectiveBehavior.applyCameraState and
PerspectiveBehavior.afterApplyCameraState are renamed to
computeCameraState and afterCameraStateResolved
  • refactor(api): rename toEulerRad to quatToEulerRad (7435eb2)
  • PerspectiveMath.toEulerRad methods are renamed to quatToEulerRad

## Features

  • feat(logic): add orbit switcher help tooltip (e5d3e53)
  • feat(logic): dilute the vinegar (088a7fe)
  • feat(logic): scale up hovered orbit actor in edit mode (4dcf79d)

## Bug Fixes

  • fix(logic): ignore auxiliary camera updates (a83f2c6)
  • fix(api): handle gimbal lock in quaternion-to-euler conversion (3b990c0)
  • fix(logic): handle null previous perspective on transition (d42dd73)
  • fix(logic): always show selected perspective label in orbit menu (50dd5da)
  • fix(logic): show selection indicator only on active perspective in orbit editor (78a7135)
  • fix(logic): show actor tooltip on hover in orbit editor (b7e70ce)
  • fix(logic): smooth orbit actor scale transitions with ExpSmoothDouble (17ba3e0)

## Internationalization

  • i18n: update orbit switcher help tooltip translations (afa4523)

# 1.5.0-beta

## Breaking Changes

  • feat(api): add modifier perspective base state (7a1e37d)
  • PerspectiveModifier.apply now receives PerspectiveModifierContext instead of PerspectiveContext.

Update modifier implementations to use PerspectiveModifierContext.
  • fix(api): resolve perspective state during rendering (b6ef7e1)
  • remove clientTickWhenActive from PerspectiveBehavior and PerspectiveSwitcherBehavior. Perspective availability is no longer cached per client tick.

Implementations that update state on client ticks must subscribe to their loader event and return cached values during rendering.
  • refactor(api): rename PerspectiveBehavior camera state pipeline methods (b151b2f)
  • PerspectiveBehavior.applyCameraState and
PerspectiveBehavior.afterApplyCameraState are renamed to
computeCameraState and afterCameraStateResolved
  • refactor(api): rename toEulerRad to quatToEulerRad (7435eb2)
  • PerspectiveMath.toEulerRad methods are renamed to quatToEulerRad

## Features

  • feat(logic): add orbit switcher help tooltip (e5d3e53)
  • feat(logic): dilute the vinegar (088a7fe)
  • feat(logic): scale up hovered orbit actor in edit mode (4dcf79d)

## Bug Fixes

  • fix(logic): ignore auxiliary camera updates (a83f2c6)
  • fix(api): handle gimbal lock in quaternion-to-euler conversion (3b990c0)
  • fix(logic): handle null previous perspective on transition (d42dd73)
  • fix(logic): always show selected perspective label in orbit menu (50dd5da)
  • fix(logic): show selection indicator only on active perspective in orbit editor (78a7135)
  • fix(logic): show actor tooltip on hover in orbit editor (b7e70ce)
  • fix(logic): smooth orbit actor scale transitions with ExpSmoothDouble (17ba3e0)

## Internationalization

  • i18n: update orbit switcher help tooltip translations (afa4523)

# 1.5.0-beta

## Breaking Changes

  • feat(api): add modifier perspective base state (7a1e37d)
  • PerspectiveModifier.apply now receives PerspectiveModifierContext instead of PerspectiveContext.

Update modifier implementations to use PerspectiveModifierContext.
  • fix(api): resolve perspective state during rendering (b6ef7e1)
  • remove clientTickWhenActive from PerspectiveBehavior and PerspectiveSwitcherBehavior. Perspective availability is no longer cached per client tick.

Implementations that update state on client ticks must subscribe to their loader event and return cached values during rendering.
  • refactor(api): rename PerspectiveBehavior camera state pipeline methods (b151b2f)
  • PerspectiveBehavior.applyCameraState and
PerspectiveBehavior.afterApplyCameraState are renamed to
computeCameraState and afterCameraStateResolved
  • refactor(api): rename toEulerRad to quatToEulerRad (7435eb2)
  • PerspectiveMath.toEulerRad methods are renamed to quatToEulerRad

## Features

  • feat(logic): add orbit switcher help tooltip (e5d3e53)
  • feat(logic): dilute the vinegar (088a7fe)
  • feat(logic): scale up hovered orbit actor in edit mode (4dcf79d)

## Bug Fixes

  • fix(logic): ignore auxiliary camera updates (a83f2c6)
  • fix(api): handle gimbal lock in quaternion-to-euler conversion (3b990c0)
  • fix(logic): handle null previous perspective on transition (d42dd73)
  • fix(logic): always show selected perspective label in orbit menu (50dd5da)
  • fix(logic): show selection indicator only on active perspective in orbit editor (78a7135)
  • fix(logic): show actor tooltip on hover in orbit editor (b7e70ce)
  • fix(logic): smooth orbit actor scale transitions with ExpSmoothDouble (17ba3e0)

## Internationalization

  • i18n: update orbit switcher help tooltip translations (afa4523)

# 1.5.0-beta

## Breaking Changes

  • feat(api): add modifier perspective base state (7a1e37d)
  • PerspectiveModifier.apply now receives PerspectiveModifierContext instead of PerspectiveContext.

Update modifier implementations to use PerspectiveModifierContext.
  • fix(api): resolve perspective state during rendering (b6ef7e1)
  • remove clientTickWhenActive from PerspectiveBehavior and PerspectiveSwitcherBehavior. Perspective availability is no longer cached per client tick.

Implementations that update state on client ticks must subscribe to their loader event and return cached values during rendering.
  • refactor(api): rename PerspectiveBehavior camera state pipeline methods (b151b2f)
  • PerspectiveBehavior.applyCameraState and
PerspectiveBehavior.afterApplyCameraState are renamed to
computeCameraState and afterCameraStateResolved
  • refactor(api): rename toEulerRad to quatToEulerRad (7435eb2)
  • PerspectiveMath.toEulerRad methods are renamed to quatToEulerRad

## Features

  • feat(logic): add orbit switcher help tooltip (e5d3e53)
  • feat(logic): dilute the vinegar (088a7fe)
  • feat(logic): scale up hovered orbit actor in edit mode (4dcf79d)

## Bug Fixes

  • fix(logic): ignore auxiliary camera updates (a83f2c6)
  • fix(api): handle gimbal lock in quaternion-to-euler conversion (3b990c0)
  • fix(logic): handle null previous perspective on transition (d42dd73)
  • fix(logic): always show selected perspective label in orbit menu (50dd5da)
  • fix(logic): show selection indicator only on active perspective in orbit editor (78a7135)
  • fix(logic): show actor tooltip on hover in orbit editor (b7e70ce)
  • fix(logic): smooth orbit actor scale transitions with ExpSmoothDouble (17ba3e0)

## Internationalization

  • i18n: update orbit switcher help tooltip translations (afa4523)

# 1.5.0-beta

## Breaking Changes

  • feat(api): add modifier perspective base state (7a1e37d)
  • PerspectiveModifier.apply now receives PerspectiveModifierContext instead of PerspectiveContext.

Update modifier implementations to use PerspectiveModifierContext.
  • fix(api): resolve perspective state during rendering (b6ef7e1)
  • remove clientTickWhenActive from PerspectiveBehavior and PerspectiveSwitcherBehavior. Perspective availability is no longer cached per client tick.

Implementations that update state on client ticks must subscribe to their loader event and return cached values during rendering.
  • refactor(api): rename PerspectiveBehavior camera state pipeline methods (b151b2f)
  • PerspectiveBehavior.applyCameraState and
PerspectiveBehavior.afterApplyCameraState are renamed to
computeCameraState and afterCameraStateResolved
  • refactor(api): rename toEulerRad to quatToEulerRad (7435eb2)
  • PerspectiveMath.toEulerRad methods are renamed to quatToEulerRad

## Features

  • feat(logic): add orbit switcher help tooltip (e5d3e53)
  • feat(logic): dilute the vinegar (088a7fe)
  • feat(logic): scale up hovered orbit actor in edit mode (4dcf79d)

## Bug Fixes

  • fix(logic): ignore auxiliary camera updates (a83f2c6)
  • fix(api): handle gimbal lock in quaternion-to-euler conversion (3b990c0)
  • fix(logic): handle null previous perspective on transition (d42dd73)
  • fix(logic): always show selected perspective label in orbit menu (50dd5da)
  • fix(logic): show selection indicator only on active perspective in orbit editor (78a7135)
  • fix(logic): show actor tooltip on hover in orbit editor (b7e70ce)
  • fix(logic): smooth orbit actor scale transitions with ExpSmoothDouble (17ba3e0)

## Internationalization

  • i18n: update orbit switcher help tooltip translations (afa4523)

# 1.5.0-beta

## Breaking Changes

  • feat(api): add modifier perspective base state (7a1e37d)
  • PerspectiveModifier.apply now receives PerspectiveModifierContext instead of PerspectiveContext.

Update modifier implementations to use PerspectiveModifierContext.
  • fix(api): resolve perspective state during rendering (b6ef7e1)
  • remove clientTickWhenActive from PerspectiveBehavior and PerspectiveSwitcherBehavior. Perspective availability is no longer cached per client tick.

Implementations that update state on client ticks must subscribe to their loader event and return cached values during rendering.
  • refactor(api): rename PerspectiveBehavior camera state pipeline methods (b151b2f)
  • PerspectiveBehavior.applyCameraState and
PerspectiveBehavior.afterApplyCameraState are renamed to
computeCameraState and afterCameraStateResolved
  • refactor(api): rename toEulerRad to quatToEulerRad (7435eb2)
  • PerspectiveMath.toEulerRad methods are renamed to quatToEulerRad

## Features

  • feat(logic): add orbit switcher help tooltip (e5d3e53)
  • feat(logic): dilute the vinegar (088a7fe)
  • feat(logic): scale up hovered orbit actor in edit mode (4dcf79d)

## Bug Fixes

  • fix(logic): ignore auxiliary camera updates (a83f2c6)
  • fix(api): handle gimbal lock in quaternion-to-euler conversion (3b990c0)
  • fix(logic): handle null previous perspective on transition (d42dd73)
  • fix(logic): always show selected perspective label in orbit menu (50dd5da)
  • fix(logic): show selection indicator only on active perspective in orbit editor (78a7135)
  • fix(logic): show actor tooltip on hover in orbit editor (b7e70ce)
  • fix(logic): smooth orbit actor scale transitions with ExpSmoothDouble (17ba3e0)

## Internationalization

  • i18n: update orbit switcher help tooltip translations (afa4523)

# 1.5.0-beta

## Breaking Changes

  • feat(api): add modifier perspective base state (7a1e37d)
  • PerspectiveModifier.apply now receives PerspectiveModifierContext instead of PerspectiveContext.

Update modifier implementations to use PerspectiveModifierContext.
  • fix(api): resolve perspective state during rendering (b6ef7e1)
  • remove clientTickWhenActive from PerspectiveBehavior and PerspectiveSwitcherBehavior. Perspective availability is no longer cached per client tick.

Implementations that update state on client ticks must subscribe to their loader event and return cached values during rendering.
  • refactor(api): rename PerspectiveBehavior camera state pipeline methods (b151b2f)
  • PerspectiveBehavior.applyCameraState and
PerspectiveBehavior.afterApplyCameraState are renamed to
computeCameraState and afterCameraStateResolved
  • refactor(api): rename toEulerRad to quatToEulerRad (7435eb2)
  • PerspectiveMath.toEulerRad methods are renamed to quatToEulerRad

## Features

  • feat(logic): add orbit switcher help tooltip (e5d3e53)
  • feat(logic): dilute the vinegar (088a7fe)
  • feat(logic): scale up hovered orbit actor in edit mode (4dcf79d)

## Bug Fixes

  • fix(logic): ignore auxiliary camera updates (a83f2c6)
  • fix(api): handle gimbal lock in quaternion-to-euler conversion (3b990c0)
  • fix(logic): handle null previous perspective on transition (d42dd73)
  • fix(logic): always show selected perspective label in orbit menu (50dd5da)
  • fix(logic): show selection indicator only on active perspective in orbit editor (78a7135)
  • fix(logic): show actor tooltip on hover in orbit editor (b7e70ce)
  • fix(logic): smooth orbit actor scale transitions with ExpSmoothDouble (17ba3e0)

## Internationalization

  • i18n: update orbit switcher help tooltip translations (afa4523)

# 1.5.0-beta

## Breaking Changes

  • feat(api): add modifier perspective base state (7a1e37d)
  • PerspectiveModifier.apply now receives PerspectiveModifierContext instead of PerspectiveContext.

Update modifier implementations to use PerspectiveModifierContext.
  • fix(api): resolve perspective state during rendering (b6ef7e1)
  • remove clientTickWhenActive from PerspectiveBehavior and PerspectiveSwitcherBehavior. Perspective availability is no longer cached per client tick.

Implementations that update state on client ticks must subscribe to their loader event and return cached values during rendering.
  • refactor(api): rename PerspectiveBehavior camera state pipeline methods (b151b2f)
  • PerspectiveBehavior.applyCameraState and
PerspectiveBehavior.afterApplyCameraState are renamed to
computeCameraState and afterCameraStateResolved
  • refactor(api): rename toEulerRad to quatToEulerRad (7435eb2)
  • PerspectiveMath.toEulerRad methods are renamed to quatToEulerRad

## Features

  • feat(logic): add orbit switcher help tooltip (e5d3e53)
  • feat(logic): dilute the vinegar (088a7fe)
  • feat(logic): scale up hovered orbit actor in edit mode (4dcf79d)

## Bug Fixes

  • fix(logic): ignore auxiliary camera updates (a83f2c6)
  • fix(api): handle gimbal lock in quaternion-to-euler conversion (3b990c0)
  • fix(logic): handle null previous perspective on transition (d42dd73)
  • fix(logic): always show selected perspective label in orbit menu (50dd5da)
  • fix(logic): show selection indicator only on active perspective in orbit editor (78a7135)
  • fix(logic): show actor tooltip on hover in orbit editor (b7e70ce)
  • fix(logic): smooth orbit actor scale transitions with ExpSmoothDouble (17ba3e0)

## Internationalization

  • i18n: update orbit switcher help tooltip translations (afa4523)

# 1.5.0-beta

## Breaking Changes

  • feat(api): add modifier perspective base state (7a1e37d)
  • PerspectiveModifier.apply now receives PerspectiveModifierContext instead of PerspectiveContext.

Update modifier implementations to use PerspectiveModifierContext.
  • fix(api): resolve perspective state during rendering (b6ef7e1)
  • remove clientTickWhenActive from PerspectiveBehavior and PerspectiveSwitcherBehavior. Perspective availability is no longer cached per client tick.

Implementations that update state on client ticks must subscribe to their loader event and return cached values during rendering.
  • refactor(api): rename PerspectiveBehavior camera state pipeline methods (b151b2f)
  • PerspectiveBehavior.applyCameraState and
PerspectiveBehavior.afterApplyCameraState are renamed to
computeCameraState and afterCameraStateResolved
  • refactor(api): rename toEulerRad to quatToEulerRad (7435eb2)
  • PerspectiveMath.toEulerRad methods are renamed to quatToEulerRad

## Features

  • feat(logic): add orbit switcher help tooltip (e5d3e53)
  • feat(logic): dilute the vinegar (088a7fe)
  • feat(logic): scale up hovered orbit actor in edit mode (4dcf79d)

## Bug Fixes

  • fix(logic): ignore auxiliary camera updates (a83f2c6)
  • fix(api): handle gimbal lock in quaternion-to-euler conversion (3b990c0)
  • fix(logic): handle null previous perspective on transition (d42dd73)
  • fix(logic): always show selected perspective label in orbit menu (50dd5da)
  • fix(logic): show selection indicator only on active perspective in orbit editor (78a7135)
  • fix(logic): show actor tooltip on hover in orbit editor (b7e70ce)
  • fix(logic): smooth orbit actor scale transitions with ExpSmoothDouble (17ba3e0)

## Internationalization

  • i18n: update orbit switcher help tooltip translations (afa4523)

# 1.5.0-beta

## Breaking Changes

  • feat(api): add modifier perspective base state (7a1e37d)
  • PerspectiveModifier.apply now receives PerspectiveModifierContext instead of PerspectiveContext.

Update modifier implementations to use PerspectiveModifierContext.
  • fix(api): resolve perspective state during rendering (b6ef7e1)
  • remove clientTickWhenActive from PerspectiveBehavior and PerspectiveSwitcherBehavior. Perspective availability is no longer cached per client tick.

Implementations that update state on client ticks must subscribe to their loader event and return cached values during rendering.
  • refactor(api): rename PerspectiveBehavior camera state pipeline methods (b151b2f)
  • PerspectiveBehavior.applyCameraState and
PerspectiveBehavior.afterApplyCameraState are renamed to
computeCameraState and afterCameraStateResolved
  • refactor(api): rename toEulerRad to quatToEulerRad (7435eb2)
  • PerspectiveMath.toEulerRad methods are renamed to quatToEulerRad

## Features

  • feat(logic): add orbit switcher help tooltip (e5d3e53)
  • feat(logic): dilute the vinegar (088a7fe)
  • feat(logic): scale up hovered orbit actor in edit mode (4dcf79d)

## Bug Fixes

  • fix(logic): ignore auxiliary camera updates (a83f2c6)
  • fix(api): handle gimbal lock in quaternion-to-euler conversion (3b990c0)
  • fix(logic): handle null previous perspective on transition (d42dd73)
  • fix(logic): always show selected perspective label in orbit menu (50dd5da)
  • fix(logic): show selection indicator only on active perspective in orbit editor (78a7135)
  • fix(logic): show actor tooltip on hover in orbit editor (b7e70ce)
  • fix(logic): smooth orbit actor scale transitions with ExpSmoothDouble (17ba3e0)

## Internationalization

  • i18n: update orbit switcher help tooltip translations (afa4523)

# 1.5.0-beta

## Breaking Changes

  • feat(api): add modifier perspective base state (7a1e37d)
  • PerspectiveModifier.apply now receives PerspectiveModifierContext instead of PerspectiveContext.

Update modifier implementations to use PerspectiveModifierContext.
  • fix(api): resolve perspective state during rendering (b6ef7e1)
  • remove clientTickWhenActive from PerspectiveBehavior and PerspectiveSwitcherBehavior. Perspective availability is no longer cached per client tick.

Implementations that update state on client ticks must subscribe to their loader event and return cached values during rendering.
  • refactor(api): rename PerspectiveBehavior camera state pipeline methods (b151b2f)
  • PerspectiveBehavior.applyCameraState and
PerspectiveBehavior.afterApplyCameraState are renamed to
computeCameraState and afterCameraStateResolved
  • refactor(api): rename toEulerRad to quatToEulerRad (7435eb2)
  • PerspectiveMath.toEulerRad methods are renamed to quatToEulerRad

## Features

  • feat(logic): add orbit switcher help tooltip (e5d3e53)
  • feat(logic): dilute the vinegar (088a7fe)
  • feat(logic): scale up hovered orbit actor in edit mode (4dcf79d)

## Bug Fixes

  • fix(logic): ignore auxiliary camera updates (a83f2c6)
  • fix(api): handle gimbal lock in quaternion-to-euler conversion (3b990c0)
  • fix(logic): handle null previous perspective on transition (d42dd73)
  • fix(logic): always show selected perspective label in orbit menu (50dd5da)
  • fix(logic): show selection indicator only on active perspective in orbit editor (78a7135)
  • fix(logic): show actor tooltip on hover in orbit editor (b7e70ce)
  • fix(logic): smooth orbit actor scale transitions with ExpSmoothDouble (17ba3e0)

## Internationalization

  • i18n: update orbit switcher help tooltip translations (afa4523)

# 1.5.0-beta

## Breaking Changes

  • feat(api): add modifier perspective base state (7a1e37d)
  • PerspectiveModifier.apply now receives PerspectiveModifierContext instead of PerspectiveContext.

Update modifier implementations to use PerspectiveModifierContext.
  • fix(api): resolve perspective state during rendering (b6ef7e1)
  • remove clientTickWhenActive from PerspectiveBehavior and PerspectiveSwitcherBehavior. Perspective availability is no longer cached per client tick.

Implementations that update state on client ticks must subscribe to their loader event and return cached values during rendering.
  • refactor(api): rename PerspectiveBehavior camera state pipeline methods (b151b2f)
  • PerspectiveBehavior.applyCameraState and
PerspectiveBehavior.afterApplyCameraState are renamed to
computeCameraState and afterCameraStateResolved
  • refactor(api): rename toEulerRad to quatToEulerRad (7435eb2)
  • PerspectiveMath.toEulerRad methods are renamed to quatToEulerRad

## Features

  • feat(logic): add orbit switcher help tooltip (e5d3e53)
  • feat(logic): dilute the vinegar (088a7fe)
  • feat(logic): scale up hovered orbit actor in edit mode (4dcf79d)

## Bug Fixes

  • fix(logic): ignore auxiliary camera updates (a83f2c6)
  • fix(api): handle gimbal lock in quaternion-to-euler conversion (3b990c0)
  • fix(logic): handle null previous perspective on transition (d42dd73)
  • fix(logic): always show selected perspective label in orbit menu (50dd5da)
  • fix(logic): show selection indicator only on active perspective in orbit editor (78a7135)
  • fix(logic): show actor tooltip on hover in orbit editor (b7e70ce)
  • fix(logic): smooth orbit actor scale transitions with ExpSmoothDouble (17ba3e0)

## Internationalization

  • i18n: update orbit switcher help tooltip translations (afa4523)

# 1.5.0-beta

## Breaking Changes

  • feat(api): add modifier perspective base state (7a1e37d)
  • PerspectiveModifier.apply now receives PerspectiveModifierContext instead of PerspectiveContext.

Update modifier implementations to use PerspectiveModifierContext.
  • fix(api): resolve perspective state during rendering (b6ef7e1)
  • remove clientTickWhenActive from PerspectiveBehavior and PerspectiveSwitcherBehavior. Perspective availability is no longer cached per client tick.

Implementations that update state on client ticks must subscribe to their loader event and return cached values during rendering.
  • refactor(api): rename PerspectiveBehavior camera state pipeline methods (b151b2f)
  • PerspectiveBehavior.applyCameraState and
PerspectiveBehavior.afterApplyCameraState are renamed to
computeCameraState and afterCameraStateResolved
  • refactor(api): rename toEulerRad to quatToEulerRad (7435eb2)
  • PerspectiveMath.toEulerRad methods are renamed to quatToEulerRad

## Features

  • feat(logic): add orbit switcher help tooltip (e5d3e53)
  • feat(logic): dilute the vinegar (088a7fe)
  • feat(logic): scale up hovered orbit actor in edit mode (4dcf79d)

## Bug Fixes

  • fix(logic): ignore auxiliary camera updates (a83f2c6)
  • fix(api): handle gimbal lock in quaternion-to-euler conversion (3b990c0)
  • fix(logic): handle null previous perspective on transition (d42dd73)
  • fix(logic): always show selected perspective label in orbit menu (50dd5da)
  • fix(logic): show selection indicator only on active perspective in orbit editor (78a7135)
  • fix(logic): show actor tooltip on hover in orbit editor (b7e70ce)
  • fix(logic): smooth orbit actor scale transitions with ExpSmoothDouble (17ba3e0)

## Internationalization

  • i18n: update orbit switcher help tooltip translations (afa4523)

# 1.5.0-beta

## Breaking Changes

  • feat(api): add modifier perspective base state (7a1e37d)
  • PerspectiveModifier.apply now receives PerspectiveModifierContext instead of PerspectiveContext.

Update modifier implementations to use PerspectiveModifierContext.
  • fix(api): resolve perspective state during rendering (b6ef7e1)
  • remove clientTickWhenActive from PerspectiveBehavior and PerspectiveSwitcherBehavior. Perspective availability is no longer cached per client tick.

Implementations that update state on client ticks must subscribe to their loader event and return cached values during rendering.
  • refactor(api): rename PerspectiveBehavior camera state pipeline methods (b151b2f)
  • PerspectiveBehavior.applyCameraState and
PerspectiveBehavior.afterApplyCameraState are renamed to
computeCameraState and afterCameraStateResolved
  • refactor(api): rename toEulerRad to quatToEulerRad (7435eb2)
  • PerspectiveMath.toEulerRad methods are renamed to quatToEulerRad

## Features

  • feat(logic): add orbit switcher help tooltip (e5d3e53)
  • feat(logic): dilute the vinegar (088a7fe)
  • feat(logic): scale up hovered orbit actor in edit mode (4dcf79d)

## Bug Fixes

  • fix(logic): ignore auxiliary camera updates (a83f2c6)
  • fix(api): handle gimbal lock in quaternion-to-euler conversion (3b990c0)
  • fix(logic): handle null previous perspective on transition (d42dd73)
  • fix(logic): always show selected perspective label in orbit menu (50dd5da)
  • fix(logic): show selection indicator only on active perspective in orbit editor (78a7135)
  • fix(logic): show actor tooltip on hover in orbit editor (b7e70ce)
  • fix(logic): smooth orbit actor scale transitions with ExpSmoothDouble (17ba3e0)

## Internationalization

  • i18n: update orbit switcher help tooltip translations (afa4523)

# 1.4.0-beta

## Breaking Changes

  • feat(api): add modifier pipeline phases (55b4bdd)
  • PerspectiveModifierChain.register now requires a modifier ID and PerspectiveModifierPhase.
  • refactor(api): align perspective control lifecycle (780ed86)
  • PerspectiveAPI.getCurrent now returns null when no perspective actively controls the camera, and the internal Runtime contract now receives enabled-state changes.
  • fix(impl): stabilize perspective transitions (d0ed807)
  • Orthographic height now interpolates even when a transition changes projection mode.
  • refactor(api): require camera entity in callbacks (6244046)
  • PerspectiveContext.cameraEntity now has a non-null return contract.
  • refactor(api): apply modifiers before transitions (1cdbd35)
  • Remove PerspectiveModifierPhase and the phase parameter from PerspectiveModifierChain.register.
  • refactor(api): isolate transition algorithms (715f6e4)
  • remove Transition#getBlendPower and Transition#setBlendPower. The persisted blend-power key is now specific to the fixed-start chasing-rotation algorithm.

## Features

  • feat(api): define controllable perspective semantics (5846076)
  • feat(api): expose previous camera state (8b31405)
  • feat(impl): add feed-forward transition algorithm (7e4fcae)
  • feat(impl): add easing to feed-forward transitions (f53a752)
  • feat(impl): allow runtime transition algorithm switching (f85f959)
  • feat(api): add configurable easing function to transitions (e32ce42)

## Bug Fixes

  • fix(logic): reevaluate perspectives after level changes (734ea1d)
  • fix(logic): avoid repeating post-transition effects (24072c0)
  • fix(logic): isolate final camera callbacks (15cb101)

Perspective API Icon
Download Perspective API
Select game version
Select platform