A React Native component for displaying and animating textured Wavefront .OBJ 3D models at 60fps on iOS and Android.
react-native-gl-model-view is a React Native library that provides a <ModelView> component for displaying and animating textured 3D models in iOS and Android apps. It solves the problem of integrating high-performance 3D graphics into React Native applications by bridging to native rendering engines (GLView on iOS, jPCT-AE on Android).
React Native developers building mobile applications that require 3D model visualization, such as product viewers, educational tools, games, or augmented reality experiences.
Developers choose this library because it offers native 60fps performance for 3D animations, supports multiple model formats, and integrates seamlessly with React Native's Animated API, eliminating the need for custom native 3D implementations.
📺 Display and animate textured Wavefront .OBJ 3D models with 60fps - native bridge to GLView (iOS) and jPCT-AE (Android)
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages React Native's Animated API with native driver to ensure smooth animations at 60 frames per second, as demonstrated in the example GIFs and documentation.
Provides a unified React component that bridges to GLView on iOS and jPCT-AE on Android, allowing 3D rendering on both major mobile platforms with consistent props.
Supports a range of formats including .OBJ, .3DS, and MD2, with Android offering broader support than iOS, catering to different asset sources as detailed in the features list.
Integrates directly with React Native's Animated API, enabling complex animations through native props, as shown in the AnimatedAPI example and usage instructions.
iOS supports only .OBJ and GLEssentials formats, while Android has more, leading to potential inconsistencies and extra work for cross-platform apps, as admitted in the README.
Models and textures must be manually placed in platform-specific directories (Xcode project for iOS, assets folder for Android), adding complexity to the build process and deployment.
Requires calling the private __makeNative() method on Animated values, which is undocumented and prone to breaking changes in React Native, as noted in the 'kinda hacky' admission.