The ThinkSys Mediapipe enables pose detection for React Native apps, providing a comprehensive solution for both iOS and Android developers. It offers real-time motion tracking, seamless integration, and customizable features, ideal for fitness, healthcare, and interactive applications. By combining MediaPipe's advanced capabilities with React Native's cross-platform framework, developers can easily build immersive, motion-based apps across both mobile platforms.
- iOS 13 or higher
- Gradle minimum SDK 24 or higher
- Android SDK Version 26 or higher
npm install @thinksys/react-native-mediapipe
-
Add camera usage permission in Info.plist in example/ios
<key>NSCameraUsageDescription</key> <string>This app uses camera to get pose landmarks that appear in the camera feed.</string>
-
Run
cd ios && pod install
Add these to your project's manifest.
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.CAMERA" />
Prop | Description |
---|---|
width |
Sets the camera view width. |
height |
Sets the camera view height. |
onLandmark |
Callback function to retrieve body landmark data. |
face |
Toggles visibility of the face in the body model. Affects the data provided by onLandmark . |
leftArm |
Toggles visibility of the left arm in the body model. Affects the data provided by onLandmark . |
rightArm |
Toggles visibility of the right arm in the body model. Affects the data provided by onLandmark . |
leftWrist |
Toggles visibility of the left wrist in the body model. Affects the data provided by onLandmark . |
rightWrist |
Toggles visibility of the right wrist in the body model. Affects the data provided by onLandmark . |
torso |
Toggles visibility of the torso in the body model. Affects the data provided by onLandmark . |
leftLeg |
Toggles visibility of the left leg in the body model. Affects the data provided by onLandmark . |
rightLeg |
Toggles visibility of the right leg in the body model. Affects the data provided by onLandmark . |
leftAnkle |
Toggles visibility of the left ankle in the body model. Affects the data provided by onLandmark . |
rightAnkle |
Toggles visibility of the right ankle in the body model. Affects the data provided by onLandmark . |
import { RNMediapipe } from '@thinksys/react-native-mediapipe';
export default function App() {
return (
<View>
<RNMediapipe
width={400}
height={300}
/>
</View>
)
}
import { RNMediapipe } from '@thinksys/react-native-mediapipe';
export default function App() {
return (
<View>
<RNMediapipe
width={400}
height={300}
face={true}
leftArm={true}
rightArm={true}
leftWrist={true}
rightWrist={true}
torso={true}
leftLeg={true}
rightLeg={true}
leftAnkle={true}
rightAnkle={true}
/>
</View>
)
}
import { RNMediapipe, switchCamera } from '@thinksys/react-native-mediapipe';
export default function App() {
const onFlip = () => {
switchCamera();
};
return (
<View>
<RNMediapipe
width={400}
height={300}
/>
<TouchableOpacity onPress={onFlip} style={styles.btnView}>
<Text style={styles.btnTxt}>Switch Camera</Text>
</TouchableOpacity>
</View>
)
}
import { RNMediapipe } from '@thinksys/react-native-mediapipe';
export default function App() {
return (
<View>
<RNMediapipe
width={400}
height={300}
onLandmark={(data) => {
console.log('Body Landmark Data:', data);
}}
/>
</View>
)
}
See the contributing guide to learn how to contribute to the repository and the development workflow.
This project is licensed under a custom MIT License with restrictions - see the LICENSE file for details.