react-native-box3d
v0.1.5
Published
React Native New Architecture bindings for Box3D
Downloads
619
Maintainers
Readme
react-native-box3d
Work in progress: this package is an early React Native New Architecture binding for Box3D. APIs may change while renderer-focused features such as rotations, batched transforms, shape coverage, joints, contacts, and ray casts are still being built.
React Native New Architecture bindings for Box3D.
This package exposes Box3D through a C++ Turbo Native Module for iOS and Android. It vendors the Box3D C source and builds it into the native module, so React Native apps do not need a separate Box3D install.
Installation
npm install react-native-box3dUsage
import {
BodyType,
createBoxBody,
createWorld,
getBodyPosition,
getBodyPositions,
stepWorld,
} from 'react-native-box3d';
const world = createWorld([0, -10, 0]);
const body = createBoxBody(world, {
type: BodyType.Dynamic,
position: [0, 4, 0],
halfExtents: [1, 1, 1],
});
stepWorld(world, 1 / 60, 4);
const position = getBodyPosition(body);For render loops, prefer the batched position API so each frame crosses the native boundary once:
const positions = getBodyPositions([body]);
const [x, y, z] = positions;The current API is intentionally small and handle-based. Future versions should add rotations, bulk transforms, shape types, materials, joints, contacts, and ray casts for richer renderer integrations such as React Three Fiber/Three.js.
Native Requirements
- React Native New Architecture
- iOS and Android native build toolchains
- CMake for Android native builds
Vendored Source
The vendored Box3D source is under vendor/box3d and is licensed under MIT. See vendor/box3d/LICENSE.
Contributing
License
MIT
Made with create-react-native-library
