{"_id":"5bec8a15287d1b00426efdd2","category":{"_id":"5bec8a15287d1b00426efdc6","version":"5bec8a15287d1b00426efe54","project":"578c4badbd223d2000cc1441","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-10-25T23:36:45.975Z","from_sync":false,"order":0,"slug":"basics","title":"Getting Started"},"user":"57bb7e47afc18c0e00529cf3","project":"578c4badbd223d2000cc1441","parentDoc":null,"version":{"_id":"5bec8a15287d1b00426efe54","project":"578c4badbd223d2000cc1441","__v":0,"forked_from":"5ba2b5747091250003437507","createdAt":"2018-04-23T20:03:35.726Z","releaseDate":"2018-04-23T20:03:35.726Z","categories":["5bec8a15287d1b00426efdc6","5bec8a15287d1b00426efdc7","5bec8a15287d1b00426efdc8","5bec8a15287d1b00426efdc9","5bec8a15287d1b00426efdca","5bec8a15287d1b00426efdcb","5bec8a15287d1b00426efdcc","5bec8a15287d1b00426efdcd","5bec8a15287d1b00426efdce"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"2.12.0","version":"2.12.0"},"githubsync":"","__v":0,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-11-16T00:32:47.911Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":3,"body":"[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Every react-viro release has a `Compatible with React Native` version\",\n  \"body\": \"This means that we have extensively tested ViroReact to work with that version of react-native. While older or newer versions of react-native may work with Viro, there may be issues or differences that cause ViroReact to not work properly with older or newer versions of react-native.\"\n}\n[/block]\n<span style=\"font-size:25px;font-weight:700\"><a href=\"\">ViroReact v2.12.0</a></span><span style=\"margin-left:20px;margin-bottom:10px;line-height:6px;height:26px;border:1px solid; border-radius:2px; border-color:#2cbe4e; color:#2cbe4e; display:inline-block;padding-top:3px;padding-bottom:3px;padding-left:4px;padding-right:4px;\">\n          <span style=\"padding-bottom:5px\">Latest release</span>\n</span>\n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">(react-viro v2.12.0 | react-viro-cli v2.12.0 | Compatible with React Native v0.55.1)</td><td style=\"border:0px\">11/15/2018</td></tr></table>\n\n## New Features and Improvements\n\n* **ARCore 1.5 support!**\n* Updated isARSupportedOnDevice() method to return an enum detailing ARCore's reason when AR is unavailable.\n* Support for enabling/disabling multisampling as a prop in Viro(X)SceneNavigator. Disabled by default.\n* Added unproject/project methods for Camera intrinsics.\n\n## Bug Fixes\n* Improved battery-life performance and reduced heat\n* Polyline rendering fixes ([Github Issue #429](https://github.com/viromedia/viro/issues/429))\n* Memory leak fixes ([Github Issue #466](https://github.com/viromedia/viro/issues/466))\n* Fixed looping and resetting issues with sound components\n* Adreno 320 fix ([Github Issue #465](https://github.com/viromedia/viro/issues/465))\n* Removed unused react-native imports ([Github Issue #412](https://github.com/viromedia/viro/issues/412))\n* Fixed incorrect hit points returned by HighAccuracyEvents\n* Fixed discoloration and brightness issues while recording video\n* Fixed dragging issues with FixedToPlane ([Github Issue #160](https://github.com/viromedia/virocore/issues/160))\n\n## Upgrade Instructions\n\n** Update `react-viro-cli`**\n\n1. From the terminal, simply run `npm update -g react-viro-cli`\n2. Now any `react-viro init <project>` will initialize a Viro 2.12.0 project\n\n** Update `package.json`**\n\n1. Update your `react-viro` package version to `2.12.0`\n2. Delete the `node_modules`.\n3. Run `npm install` to install the updated versions.\n[block:api-header]\n{}\n[/block]\n<span style=\"font-size:25px;font-weight:700\"><a href=\"\">ViroReact v2.11.0</a></span>\n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">(react-viro v2.11.0 | react-viro-cli v2.11.0 | Compatible with React Native v0.55.1)</td><td style=\"border:0px\">9/20/2018</td></tr></table>\n\n## New Features and Improvements\n\n* Support for adding [custom geometry](doc:virogeometry) to a scene\n* **iOS ARKit 2 support!**\n* ARKit 2.0: Support for [continuous image tracking](https://docs.viromedia.com/docs/ar-image-recognition#continuous-image-tracking-ios-12-only)!\n* ARKit 2.0: Support for [3d object detection](doc:viroarobjectmarker).\n\n## Bug Fixes\n* Fixed several bugs related to Polylines including polyline distortion and lighting ([Github Issue #179](https://github.com/viromedia/virocore/issues/179))\n* Fixed bugs related to rendering of transparent GIFs ([Github Issue #409](https://github.com/viromedia/viro/issues/409))\n\n## Upgrade Instructions\n\n** Update `react-viro-cli`**\n\n1. From the terminal, simply run `npm update -g react-viro-cli`\n2. Now any `react-viro init <project>` will initialize a Viro 2.11.0 project\n\n** Update `package.json`**\n\n1. Update your `react-viro` package version to `2.11.0`\n2. Delete the `node_modules`.\n3. Run `npm install` to install the updated versions.\n[block:api-header]\n{}\n[/block]\n<span style=\"font-size:25px;font-weight:700\"><a href=\"\">ViroReact v2.10.0</a></span>\n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">(react-viro v2.10.0 | react-viro-cli v2.10.0 | Compatible with React Native v0.55.1)</td><td style=\"border:0px\">8/28/2018</td></tr></table>\n\n## New Features and Improvements\n- ViroAnimatedImage for playing animated GIF images!\n- ARCore 1.4.0 integration with Camera AutoFocus and new HitTestRay method\n- renderingOrder prop for most components to enable developers to determine how they want to occlude nodes in the scene.\n- colorWriteMask in MaterialPropTypes to indicate what colors should be written to the screen when rendering a Material.\n - Enables filtering out a base color (e.g. red) from the Material.\n - Implement \"transparent occlusion planes\" by turning off all color writing for a Material (in conjunction with renderingOrder).\n- New FixedDistanceOrigin drag type\n\n## Bug Fixes\n* Fixed bug where rotation prop on Camera was not working\n\n## Upgrade Instructions\n\n** Update `react-viro-cli`**\n\n1. From the terminal, simply run `npm update -g react-viro-cli`\n2. Now any `react-viro init <project>` will initialize a Viro 2.10.0 project\n\n** Update `package.json`**\n\n1. Update your `react-viro` package version to `2.10.0`\n2. Delete the `node_modules`.\n3. Run `npm install` to install the updated versions.\n\n[block:api-header]\n{}\n[/block]\n<span style=\"font-size:25px;font-weight:700\"><a href=\"\">ViroReact v2.9.1</a></span>\n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">(react-viro v2.9.1 | react-viro-cli v2.9.1 | Compatible with React Native v0.55.1)</td><td style=\"border:0px\">8/15/2018</td></tr></table>\n\n## New Features and Improvements\n* More text options: 3D text, outlined text, and drop shadowed text!\n   * Create 3D text by setting [extrusion depth](doc:virotext2#section-3d-text)\n   * Create outlined and drop-shadow text by setting [outer stroke](doc:virotext2#section-outline-and-drop-shadow)\n* New [renderer settings](doc:viroarscenenavigator#section-optional-props) enable you to enable or disable features like HDR, PBR, and Shadows\n* Render [concave polygons](doc:viropolygon), and polygons with holes\n* [Override the duration](doc:viro3dobject#section-optional-props) of skeletal and keyframe animations in code\n* Improved text rendering speed\n\n## Bug Fixes\n* Stability improvements\n* Fixed error where screenshots appeared black on some devices\n\n## Upgrade Instructions\n\n** Update `react-viro-cli`**\n\n1. From the terminal, simply run `npm update -g react-viro-cli`\n2. Now any `react-viro init <project>` will initialize a Viro 2.9.1 project\n\n** Update `package.json`**\n\n1. Update your `react-viro` package version to `2.9.1`\n2. Delete the `node_modules`.\n3. Run `npm install` to install the updated versions.\n\n[block:api-header]\n{}\n[/block]\n<span style=\"font-size:25px;font-weight:700\"><a href=\"\">ViroReact v2.8.2</a></span>\n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">(react-viro v2.8.2 | react-viro-cli v2.8.2 | Compatible with React Native v0.55.1)</td><td style=\"border:0px\">7/17/2018</td></tr></table>\n\n\n## Bug Fixes\n* Fixed issue on Android where model loading caused crash.\n* Fixed animation bug where starting and stopping and animation wasn't working properly.\n\n## Upgrade Instructions\n\n** Update `react-viro-cli`**\n\n1. From the terminal, simply run `npm update -g react-viro-cli`\n2. Now any `react-viro init <project>` will initialize a Viro 2.8.2 project\n\n** Update `package.json`**\n\n1. Update your `react-viro` package version to `2.8.2`\n2. Delete the `node_modules`.\n3. Run `npm install` to install the updated versions.\n[block:api-header]\n{}\n[/block]\n<span style=\"font-size:25px;font-weight:700\"><a href=\"\"><a href=\"\">ViroReact v2.8.1</a></span>\n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">(react-viro v2.8.1 | react-viro-cli v2.8.1 | Compatible with React Native v0.55.1)</td><td style=\"border:0px\">7/6/2018</td></tr></table>\n\n## New Features and Improvements\n* GLTF skeletal animation support!\n* `<ViroCamera>` component for affixing scene elements to the camera\n* Added `onCameraTransformUpdate` so you can respond to all camera changes\n* Improved sharpness of text\n* Performance improvements when loading models\n\n## Bug Fixes\n* Corrected issues with changing chroma key filtering color\n* Fixed issue where onAnchorFound reported the wrong initial value\n* Fixed bug where camera did not always inherit from parent nodes\n\n## Upgrade Instructions\n\n** Update `react-viro-cli`**\n\n1. From the terminal, simply run `npm update -g react-viro-cli`\n2. Now any `react-viro init <project>` will initialize a Viro 2.8.1 project\n\n** Update `package.json`**\n\n1. Update your `react-viro` package version to `2.8.1`\n2. Delete the `node_modules`.\n3. Run `npm install` to install the updated versions.\n\n<br>\n[block:api-header]\n{}\n[/block]\n<span style=\"font-size:25px;font-weight:700\"><a href=\"\">ViroReact v2.7.3</a></span>\n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">(react-viro v2.7.3 | react-viro-cli v2.7.3 | Compatible with React Native v0.55.1)</td><td style=\"border:0px\">6/5/2018</td></tr></table>\n\n## Bug Fixes\n\n* Fix bug where shadow planes were visible (on iOS)\n\n## Upgrade Instructions\n\n** Update `react-viro-cli`**\n\n1. From the terminal, simply run `npm update -g react-viro-cli`\n2. Now any `react-viro init <project>` will initialize a Viro 2.7.3 project\n\n** Update `package.json`**\n\n1. Update your `react-viro` package verstion to `2.7.3`\n2. Delete the `node_modules`.\n3. Run `npm install` to install the updated versions.\n\n<br>\n[block:api-header]\n{}\n[/block]\n\n<span style=\"font-size:25px;font-weight:700\"><a href=\"\">ViroReact v2.7.1</a></span>\n\n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">(react-viro v2.7.1 | react-viro-cli v2.7.1 | Compatible with React Native v0.55.1)</td><td style=\"border:0px\">5/29/2018</td></tr></table>\n\n## Bug Fixes\n\n* Fix bug where shadow planes were visible (on Android)\n* Minor bug fixes\n\n## Upgrade Instructions\n\n** Update `react-viro-cli`**\n\n1. From the terminal, simply run `npm update -g react-viro-cli`\n2. Now any `react-viro init <project>` will initialize a Viro 2.7.1 project\n\n** Update `package.json`**\n\n1. Update your `react-viro` package verstion to `2.7.1`\n2. Delete the `node_modules`.\n3. Run `npm install` to install the updated versions.\n\n<br>\n[block:api-header]\n{}\n[/block]\n<span style=\"font-size:25px;font-weight:700\"><a href=\"\">ViroReact v2.7.0</a></span>\n\n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">(react-viro v2.7.0 | react-viro-cli v2.7.0 | Compatible with React Native v0.55.1)</td><td style=\"border:0px\">5/24/2018</td></tr></table>\n\n## New Features\n\n* __GLTF Model Loading__\n    * Support for loading [GLTF models](doc:3d-objects#section-gltf) in GLTF and GLB formats.\n* __ARCore 1.2 support__\n    * Improved image detection\n    * Detect vertical planes\n    * Much [wider range][1] of supported devices\n* __Alpha Video__\n    * [Chroma-key filtering](doc:video#alpha-video-chroma-key-filtering) enables [hologram][2] videos in AR\n* __And More__\n    * Fixed to Plane dragging: drag nodes across fixed, user-specified planes\n    * HDR tone-mapping is now performed only on HDR-lit areas of the scene, providing better camera fidelity\n    * Text has been sharpened  \n   \n## Bug Fixes\n* The model loaded callback is not invoked until *all* textures are loaded\n* Video recorder no longer fails on second recording\n* Raw solid material colors are now linearized correctly\n* Mali GPU over-saturation has been fixed\n* Physics quads no longer fall through the floor\n\n## Breaking API Changes\n* ARScene onAmbientLightUpdate now takes a float intensity, and RGB color array as input instead of a color temperature.\n<br>\n\n[1]:https://developers.google.com/ar/discover/supported-devices\n[2]:https://www.youtube.com/watch?v=68-bjoF1Vdk\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Compatible with Testbed App v2.7.0\",\n  \"body\": \"An updated testbed app was provided with this update. Please use Testbed apps with v2.7.0 at the bottom of the testbed entry screen.\"\n}\n[/block]\n## Upgrade Instructions\n\n** Update `react-viro-cli`**\n\n1. From the terminal, simply run `npm update -g react-viro-cli`\n2. Now any `react-viro init <project>` will initialize a Viro 2.7.0 project\n\n** Update `rn-cli.config.js`**\n1. Navigate to your rn-cli.config.js file (should be in the root directory of your react native workspace).\n2. Under \"getAssetExts\", add the additional following extensions: \"gltf\", \"glb\", \"bin\". It should look like this:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"getAssetExts() {\\n    return [\\\"obj\\\", \\\"mtl\\\", \\\"JPG\\\", \\\"vrx\\\", \\\"hdr\\\", \\\"gltf\\\", \\\"glb\\\", \\\"bin\\\"];\\n},\",\n      \"language\": \"json\",\n      \"name\": \"rn-cli.config.js\"\n    }\n  ]\n}\n[/block]\n** Update `package.json`**\n\n1. Update the following dependencies:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"  \\\"dependencies\\\": {\\n    \\\"react\\\": \\\"16.3.1\\\",\\n    \\\"react-native\\\": \\\"0.55.1\\\",\\n    \\\"react-viro\\\": \\\"2.7.0\\\"\\n  },\\n  \\\"devDependencies\\\": {\\n    ...\\n    \\\"react-test-renderer\\\": \\\"16.3.1\\\"\\n  },\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n2. Remove earlier installed node_modules by running `rm -rf node_modules`.\n3. Run `npm install` to install all node_modules per new package.json edits above.\n\n<br>\n[block:api-header]\n{}\n[/block]\n<span style=\"font-size:25px;font-weight:700\"><a href=\"\">ViroReact v2.6.1</a></span> \n\n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">(react-viro v2.6.1 | react-viro-cli v2.6.1 | Compatible with React Native v0.55.1)</td><td style=\"border:0px\">4/23/2018</td></tr></table>\n\n## Bug Fixes\n* Fixed material reloading bug on Android. Reloading with new materials resulted in an error, which is now fixed.\n* Fixed RN v0.55.1 bug on iOS where` babel-preset-react-native` package results in an error.\n<br>\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Compatible with Testbed App v2.6.0\",\n  \"body\": \"An updated testbed app was not required for this platform update. Please continue to use Testbed apps with v2.6.0 at the bottom of the testbed entry screen.\"\n}\n[/block]\n## Upgrade Instructions\n\n** Update `react-viro-cli`**\n\n1. From the terminal, simply run `npm update -g react-viro-cli`\n2. Now any `react-viro init <project>` will initialize a Viro 2.6.1 project\n\n** Update `package.json`**\n\n1. Update the following dependencies:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"  \\\"dependencies\\\": {\\n    \\\"react\\\": \\\"16.3.1\\\",\\n    \\\"react-native\\\": \\\"0.55.1\\\",\\n    \\\"react-viro\\\": \\\"2.6.1\\\"\\n  },\\n  \\\"devDependencies\\\": {\\n    ...\\n    \\\"react-test-renderer\\\": \\\"16.3.1\\\"\\n  },\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n2. Remove earlier installed node_modules by running `rm -rf node_modules`.\n3. Run `npm install` to install all node_modules per new package.json edits above.\n\n<br>\n[block:api-header]\n{}\n[/block]\n<span style=\"font-size:25px;font-weight:700\"><a href=\"\">ViroReact v2.6.0</a></span> \n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">(react-viro v2.6.0 | react-viro-cli v2.6.0 | Compatible with React Native v0.55.1)</td><td style=\"border:0px\">4/19/2018</td></tr></table>\n\n## New Features\n* __Support for Image Recognition on Android__\n  * Added support for [ViroARImageMarker](doc:viroarimagemarker) on Android.\n<br>\n* __Upgraded to React Native 0.55.1__\n  * Updated Viro React to work with React Native 0.55.1\n<br>\n* __Misc__\n  * Updated ARCore support to ARCore 1.1\n  * Callback added when Preloading Sound completes ([Github Issue #201](https://github.com/viromedia/viro/issues/201))\n\n## Bug Fixes\n* Fixed: Set click events crash on ViroScene\n* Fixed: Setting Gravity no longer overwrites Physics Disable Property ([Github Issue #208](https://github.com/viromedia/viro/issues/208#issuecomment-378902461))\n* Fixed: Preloading local sound no longer fails on Android\n\n## Upgrade Instructions\n\n** Update `react-viro-cli`**\n\n1. From the terminal, simply run `npm update -g react-viro-cli`\n2. Now any `react-viro init <project>` will initialize a Viro 2.6.0 project\n\n** Update `package.json`**\n\n1. Update the following dependencies:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"  \\\"dependencies\\\": {\\n    \\\"react\\\": \\\"16.3.1\\\",\\n    \\\"react-native\\\": \\\"0.55.1\\\",\\n    \\\"react-viro\\\": \\\"2.6.0\\\"\\n  },\\n  \\\"devDependencies\\\": {\\n    ...\\n    \\\"react-test-renderer\\\": \\\"16.3.1\\\"\\n  },\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n2. Remove earlier installed node_modules by running `rm -rf node_modules`. \n3. Run `npm install` to install all node_modules per new package.json edits above.\n\n**For Testbed App Users**\nDownload the latest iOS and/or Android Testbed Apps. Make sure the version at the bottom of the Enter Testbed screen is `React Viro v2.6.0`\n<br>\n\n**For Android Studio Users**\n\nOpen Android Studio, sync your project and you're good to go!\n\n**For Xcode Users**\n\nNavigate to your `ios` directory and run `pod install`.\n\nThen open the `<project_name>.xcworkspace` in Xcode and you are set!\n\n<br>\n[block:api-header]\n{}\n[/block]\n<span style=\"font-size:25px;font-weight:700\"><a href=\"\">ViroReact v2.5.1</a></span>\n\n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">(react-viro v2.5.1 | react-viro-cli v2.5.1 | Compatible with React Native v0.49.3)</td><td style=\"border:0px\">4/4/2018</td></tr></table>\n\n## New Features\n* __Support for ARKit 1.5 via Testbed App__\n    * Vertical Planes (see [ViroARPlane](doc:viroarplane))\n    * Image/Marker Tracking (see [ViroARImageMarker](doc:viroarimagemarker))\n    * Autofocus (see [ViroARSceneNavigator](doc:viroarscenenavigator)'s `autofocus` prop)\n    * 1080p support (see [ViroARSceneNavigator](doc:viroarscenenavigator)'s `videoQuality` prop) \n    * Set world origin (see [ViroARSceneNavigator](doc:viroarscenenavigator) `setWorldOrigin` function)\n<br>\n* __3D SceneView__\n    * Build non AR/VR 3D applications with ViroReact ([Github Issue #166](https://github.com/viromedia/viro/issues/166))\n<br>\n* __Polygon Planes__\n    * Render polygon planes in ARKit and ARCore\n<br>\n* __Improved Text and Fonts__\n    * Internationalization: support for Chinese, Japanese, and Korean characters ([Github Issue #186](https://github.com/viromedia/viro/issues/186))\n    * Render mixed-language text by specifying a list of font families\n    * Support for more system fonts on Android, including system font groups ('monospace', 'cursive', etc.)\n    * Improved font specification: choose font weight (100 to 900) and font style (italic) ([Github Issue #143](https://github.com/viromedia/viro/issues/143))\n<br>\n* __New Trackable States for ARCore/ARKit__\n    * TRACKING_UNAVAILABLE: AR Camera position is not available\n    * TRACKING_LIMITED: Tracking is available but quality of results can be may be inaccurate\n    * TRACKING_NORMAL: Camera position tracking is providing optimal results\n<br>\n* __And More!__\n    * Enable Alpha Channel for Gaussian Blur Bloom Shaders\n    * Video textures over 3D Objects ([Github #136](https://github.com/viromedia/viro/issues/136))\n    * Non-full screen mode for AR and 360\n    * Exoplayer upgrade to version 2.7.1\n    * Added support for x86_64 architecture on iOS\n        * Enables the iOS simulator (warning: this uses software emulated OpenGL -- so it's slow!)\n\n## Bug Fixes\n* Fixed: Android Testbed app will no longer cache initial scene\n* Fixed: Improved method to detect if ARCore is supported on a device ([Github Issue #171](https://github.com/viromedia/viro/issues/171))\n* Fixed: Objects were not appearing at far distances ([Github Issue #194](https://github.com/viromedia/viro/issues/194))\n* Fixed: Colors were dark when recording video on some Android devices\n* Fixed: FBX bounding box returned incorrect values\n* Fixed: ViroView would rotate upon re-entering AR\n* Fixed: Bloom would cause the entire AR camera to brighten\n\n## Breaking API Changes\nNone.\n\n## Upgrade instructions\n** Update `react-viro-cli`**\n\n1. From the terminal, simply run `npm update -g react-viro-cli`\n2. Now any `react-viro init <project>` will initialize a Viro 2.5.1 project\n\n** Update `package.json`**\n\n1. Update the `react-viro` version in your `package.json` file to `2.5.1`\n2. Run `npm install` to pull down the updated `react-viro` version\n\n** Update `rn-cli.config.js` **\n\n1. Open the `rn-cli.config.js` file at the root of your project.\n2. Add `\"hdr\"` to the array returned by the `getAssetsExts()` function.\n<br>\n\n** For Testbed App Users **\nDownload the latest iOS and/or Android Testbed Apps. Make sure the version at the bottom of the Enter Testbed screen is `React Viro v2.5.1`\n<br>\n\n**For Android Studio Users**\nIf you're using AR, you'll need to add the following line to your `AndroidManifest.xml` under the `<application/>` node:\n\n```<meta-data android:name=\"com.google.ar.core\" android:value=\"optional\" />```\n\nAlso, when AR starts, you'll be prompted to install the ARCore 1.0 APK.\n<br>\n\n**For Xcode Users**\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"If you were using Viro React beta features (ARKit 1.5/iOS 11.3 beta)...\",\n  \"body\": \"You'll need to change back your `Podfile` to point to the correct ViroKit:\\n\\n``` pod 'ViroKit', :path => '../node_modules/react-viro/ios/dist/ViroRenderer/'```\"\n}\n[/block]\nNavigate to your `ios` directory and run `pod install`.\n\nThen open the `<project_name>.xcworkspace` in Xcode and you are set!\n\n<br>\n<br>\n[block:api-header]\n{\n  \"title\": \"ViroReact v2.4.0\"\n}\n[/block]\n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">(react-viro v2.4.0 | react-viro-cli v2.4.0 | Compatible with React Native v0.49.3)</td><td style=\"border:0px\">2/27/2018</td></tr></table>\n\nNew release with some big new features!\n\n## New Features\n* __Support for ARKit 1.5__\n    * Vertical Planes (see [ViroARPlane](doc:viroarplane))\n    * Image/Marker Tracking (see [ViroARImageMarker](doc:viroarimagemarker))\n    * Toggle autofocus (see [ViroARSceneNavigator](doc:viroarscenenavigator)'s `autofocus` prop)\n    * 1080p support (see [ViroARSceneNavigator](doc:viroarscenenavigator)'s `videoQuality` prop) \n    * Set world origin (see [ViroARSceneNavigator](doc:viroarscenenavigator) `setWorldOrigin` function)\n\n\n* __Support for ARCore 1.0__ \n    * API to trigger an install of ARCore if ARCore is not present on the device\n    * API to check if a user device is capable of running ARCore\n\n\n* __Support for [Physically Based Rendering](doc:physically-based-rendering) (PBR)__\n    * New metalness, roughness, and ambient occlusion [ViroMaterials](doc:materials) properties\n    * [Image-based][1] diffuse and specular lighting\n    * Lights can now be specified physically through temperature (Kelvins) and intensity (Lumens)\n    * Updated ViroFBX tool (for FBX to VRX conversion) can be found in your projects ```node_modules/react-viro/bin``` directory\n\n* __And more!__\n    * Textures can now be tiled over surfaces\n    * API to set the field of view on [ViroCamera](doc:virocamera) \n    * Added screen, multiply, and subtract blend modes\n    * Added support for Spatial Audio on iOS\n\n[1]:https://docs.viromedia.com/v2.4.0/docs/physically-based-rendering#image-based-lighting\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"ARKit 1.5 is currently in developer preview\",\n  \"body\": \"You can not distribute apps using ARKit 1.5 features until Apple releases it to the public (Spring 2018). As such, the Viro Media Testbed app does not support ARKit 1.5 features at this time. To develop using ARKit 1.5 features, you will need to upgrade to XCode 9.3 beta and use XCode to compile and run.\"\n}\n[/block]\n## Bug Fixes\n* Fixed: Framerate drop in AR scene with large 3D models.\n* Fixed: Weak global reference crash if device was idle for extended time\n* Fixed: Black screen on Mail-T720 GPU devices (i.e. A5 2016)\n* Fixed: Crash on invalid URIs\n* Fixed: various FBX keyframe and skeletal animation bugs\n\n## Breaking API Changes\n* Spotlight: the inner angle and outer angle of spotlights have changed! Now the inner angle represents the angle from edge to edge of the fully lit cone, and the outer angle represents the angle from edge to edge of the attenuated cone.\n\n## Upgrade instructions\n** Update `react-viro-cli`**\n\n1. From the terminal, simply run `npm update -g react-viro-cli`\n2. Now any `react-viro init <project>` will initialize a Viro 2.4.0 project\n\n**Update `package.json`**\n\n1. Update the `react-viro` version in your `package.json` file to `2.4.0`\n2. Run `npm install` to pull down the updated `react-viro` version\n\n** Update `rn-cli.config.js` **\n\n1. Open the `rn-cli.config.js` file at the root of your project.\n2. Add `\"hdr\"` to the array returned by the `getAssetsExts()` function.\n<br>\n\n**For Testbed App Users**\nDownload the latest iOS and/or Android Testbed Apps. Make sure the version at the bottom of the Enter Testbed screen is `React Viro v2.4.0`\n<br>\n\n**For Android Studio Users**\n\nIf you're using AR, you'll need to add the following line to your `AndroidManifest.xml` under the `<application/>` node:\n\n```<meta-data android:name=\"com.google.ar.core\" android:value=\"optional\" />```\n\nAlso, when AR starts, you'll be prompted to install the ARCore 1.0 APK.\n<br>\n\n**For Xcode Users**\n\nNavigate to your `ios` directory and run `pod install`.\n\nThen open the `<project_name>.xcworkspace` in Xcode and you are set!\n<br>\n<br>\n[block:api-header]\n{\n  \"title\": \"ViroReact v2.3.0\"\n}\n[/block]\n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">(react-viro v2.3.0 | react-viro-cli v2.3.0 | Compatible with React Native v0.49.3)</td><td style=\"border:0px\">1/16/2018</td></tr></table>\n\n\n## Updates\n\n1. ARCore Preview 2 Support - we've updated from ARCore Preview 1 to Preview 2.\n2. Added `performARHitTestWithPoint` to [ViroARScene](doc:viroarscene) which allows users to perform hit tests w/ 2D points (in pixels).\n3. Added `resetARSession` to [ViroARSceneNavigator](doc:viroarscenenavigator) which allows users to reset the AR session (iOS only)\n4. Updated iOS project to properly manage dependencies with CocoaPods.\n5. Fixed a lot of bugs in the platform.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"ARCore Development\",\n  \"body\": \"If you are developing for ARCore. Install Google's ARCore Preview 2 client on your device. Instructions from Google are [here](https://developers.google.com/ar/develop/java/getting-started) under 'Prepare your device'.\"\n}\n[/block]\n## Upgrade Instructions\n\n**Update `package.json`**\n\n1. Update the `react-viro` version in your `package.json` file to `2.3.0`\n2. Run `npm install` to pull down the updated `react-viro` version\n\n**For Testbed App Users**\nDownload the latest iOS and/or Android Testbed Apps. Make sure the version at the bottom of the Enter Testbed screen is `React Viro v2.3.0`\n\n**For Android Studio Users**\n\nThat's it! Just open up your project and perform a gradle sync.\n\n**For Xcode Users**\n\n1. Go to your `Podfile` (usually at `<project_name>/ios/Podfile`) then update it to look like the following:\n\n```\nplatform :ios, '9.3'\ntarget '<PROJECT_NAME>' do\n  use_frameworks!\n  pod 'ViroReact', :path => '../node_modules/react-viro/ios/'\n  pod 'ViroKit', :path => '../node_modules/react-viro/ios/dist/ViroRenderer/'\nend\n```\n\n2. In the same directory as your `Podfile` run `pod update`.\n3. Open your workspace and under your Project -> Build Settings -> Dead Code Stripping, set both Debug and Release values to `Yes`.\n4. Now clean & build your project!\n\n** Update `react-viro-cli`**\n\n1. From the terminal, simply run `npm update -g react-viro-cli`\n2. Now any `react-viro init <project>` will initialize a Viro 2.3.0 project\n<br>\n<br>\n[block:api-header]\n{\n  \"title\": \"ViroReact v2.2.0\"\n}\n[/block]\n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">(react-viro v2.2.0 | react-viro-cli v2.2.0 | Compatible with React Native v0.49.3)</td><td style=\"border:0px\">12/20/2017</td></tr></table>\n\nThis update contains mostly under-the-hood updates and fixes.\n\n## Updates\n**Underlying VR platform SDKs have been updated**:\n- Updated Google VR (Android) to version 1.110\n- Updated Google VR (iOS) to version 1.100\n- Updated Oculus VR Mobile SDK to 1.9.0\n\n**AR World Alignment (iOS only)** - Has your world felt a little uneven/unstable recently? Well, suffer no more, as we have exposed a `worldAlignment` property for [ViroARSceneNavigator](doc:viroarscenenavigator) so you can finally realign your world however you see fit.\n**AR PointCloud Data** - In the past only we had access to the point cloud data and only let you dictate how we display the points, but now you too have access to the raw point data (see `onARPointCloudUpdate` in [ViroARScene](doc:viroarscene)) . Remember: \"With great power comes great responsibility!\"\n**AR onHover Support** - In past releases, we were simply looking, but not seeing. Now when you look at things, they respond! onHover callbacks on components will now work in AR using the center of the camera.\n\n**Fixed Bugs**\n- Fixed bug with reticle scaling\n- Fix issue with collision normals in physics system\n- Fix freezing issue when loading FBX models on Oculus VR\n\nand other miscellaneous bugs and performance improvements.\n\nIf you notice anything broken, feel free to reach out to us on our issues link above!\n\n## Upgrade instructions\n\n**Update `package.json`**\n\n1. Update the `react-viro` version in your `package.json` file to `2.2.0`\n2. Run `npm install` to pull down the updated `react-viro` version\n3. That's it! You should now be on `React Viro v2.2.0`.\n\n** Update `react-viro-cli`**\n\n1. From the terminal, simply run `npm update -g react-viro-cli`\n2. Now any `react-viro init <project>` will initialize a Viro 2.2.0 project\n<br>\n<br>\n[block:api-header]\n{\n  \"title\": \"ViroReact v2.1.0\"\n}\n[/block]\n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">(react-viro v2.1.0 | react-viro-cli v2.1.0 | Compatible with React Native v0.49.3)</td><td style=\"border:0px\">11/16/2017</td></tr></table>\n\nViro React's v2.1.0 release coincides with the Android-only [ViroCore](https://virocore.viromedia.com/) Java API which allows Android/Java developers to write AR/VR apps using the same renderer we use in Viro React. In this release, we've updated the platform with ARCore support on Android, added a few more features and fixed some bugs detailed below.\n \n## Updates\n**Android AR Support** - We now support building AR apps on Android using the same AR components we released in v2.0.0 using Google's ARCore API on the following [devices](https://developers.google.com/ar/discover/#supported_devices).\n**Updated ARPlane** - Developers can now listen for all plane anchors found and manually select the plane they want to use (See `id` prop of [ViroARPlane](doc:viroarplane)).\n**AR Point Cloud** - The platform can now draw AR point clouds and developers can customize how it looks (See `displayPointCloud` prop of [ViroARScene](doc:viroarscene)).\n**HLS Video Support for Android** - We missed this in our previous releases, but the platform now supports HLS videos on [ViroVideo](doc:virovideo-2-compare) and [Viro360Video](doc:viro360video-1) components.\n**AR Camera Hit Test** - We added the ability to constantly perform and retrieve hit test results based on where the user is looking.\n\n## Upgrade Instructions\n\n**Updating `package.json`**\n\nYour `package.json` should like the following:\n\n```\n  \"dependencies\": {\n    \"react\": \"16.0.0-beta.5\",\n    \"react-native\": \"0.49.3\",\n    \"react-viro\": \"2.1.0\"\n  },\n  \"devDependencies\": {\n    \"babel-jest\": \"21.2.0\",\n    \"babel-preset-react-native\": \"4.0.0\",\n    \"jest\": \"21.2.1\",\n    \"react-test-renderer\": \"16.0.0-beta.5\"\n  },\n```\n\nAfter updating the file, run `npm install`\n\n**Migration from `index.ios|android.js` to single `index.js`**\n\nMove/merge your `index.ios|android.js` files into a single `index.js` file.\n\nFor legacy testbed support, update your `index.ios|android.js` files to look like the following:\n\n```\nimport { AppRegistry } from 'react-native';\nimport MainIndex from './index.js';\n\nAppRegistry.registerComponent('ViroSample', () => MainIndex);\n```\n\n**Update `React.createClass` to `create-react-class`**\n\nIn React Native 0.49.3, `React.createClass` is no longer supported, as a result, you should use the `create-react-class` drop in substitute (explained below) or migrate over to ES6 classes (one example [here](https://www.newmediacampaigns.com/blog/refactoring-react-components-to-es6-classes)).\n\nIn every file where `React.createClass` is present, simply add this line:\n\n```\nvar createReactClass = require('create-react-class');\n```\n\nThen simply replace usages of `React.createClass()` with `createReactClass()`.\n\n**Adding ARCore to Existing Projects**\n\nModifying `<project_root>/android/settings.gradle` by adding/updating the following lines:\n\n```\n...\ninclude ':react_viro', ':arcore_client', ':gvr_common', ':viro_renderer'\nproject(':arcore_client').projectDir = new File('../node_modules/react-viro/android/arcore_client')\n...\n```\n\nUpdate `<project_root>/android/app/build.gradle` by adding the line `compile project(':arcore_client')` in the `dependencies` section after the `compile 'com.facebook.react:react-native:+'` line.\n<br>\n<br>\n[block:api-header]\n{\n  \"title\": \"ViroReact v2.0.1\"\n}\n[/block]\n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">(react-viro v2.0.1 | react-viro-cli v2.0.1 | Compatible with React Native v0.47.2)</td><td style=\"border:0px\">10/04/2017</td></tr></table>\n\nA new release with some bug fixes! \n\n## Updates\n- Fixed bug in ViroFBX binary so now multiple animations supported. \n- Fix crash on Adreno cards caused by large UBO.\n- Fixed onFuse reticle UI so it's no longer so large.\n- Fixed onFuse crash bug that occurs due to triggering invalid delegates.\n- Fixed Stereoscopic for Mono Mode.\n\n## Upgrade Instructions\nTo use `react-viro v2.0.1` in new projects upgrade our cli by doing `npm update -g react-viro-cli`. Then do 'react viro init MyProjectName' to use the new version.\n\nFor existing projects using 2.0, upgrade the `react-viro` package to 2.0.1 in your package.json and then reinstall the react viro module: `rm -rf node_modules/react-viro && npm install` from your project directory.\n\n#react-viro v2.0.0 | react-viro-cli v2.0.0 (Compatible with React Native v0.47.2)\n\nIt's here! We're happy to announce the release of ViroReact v2.0 with support for [Augmented Reality (AR)](doc:augmented-reality-ar) w/ Apple's ARKit! That means that you, everyone you know, and everyone you don't (because we're free to use) can use ViroReact to build the AR experiences you've been dreaming of building! Don't worry VR users, we didn't forget about you either! There are a lot of features that we've added to the core ViroReact platform like a full fledged *Physics* engine and *Particle* support (iOS only for now)! Read the notes below to see what other goodies we've packed into our v2.0 release!\n\n## Updates\n\n**AR Support** - With our new Augmented Reality (AR) support, we've Augmented your world with our platform so that you can build AR stuff too! (iOS 11+ support only)\n**Physics Support** - Ever feel like you just weren't connecting with your objects? Well, with our new physics engine support, now you can! (All platforms supported!)\n**FBX Object Support** - FBX is to OBJ as cars are to horse-led carriages, it's that much better! Check out the [3D Objects](doc:3d-objects) guide. (All platforms supported!)\n**Particles Support** - Having a bad day? How about adding some confetti? Or fireworks? Or maybe some snow because you just can't wait for ski season to start? It's now a possibility with our platform! (iOS support only)\n**Shadows Support** - With Viro 1.0, we had lights. We've worked really hard, but now we also have shadows (iOS support only)\n**Animation Changes** - With Viro 2.0, we've decided to retire [ViroAnimatedComponent](doc:viroanimatedcomponent), but never fear, we've just decided to go with an `animation` prop on our components! Check out our [Animation](doc:animation) guide for more details.\n**Many Other Changes** - We've changed a whole lot, added a lot more callbacks and methods on various components. It's too long to list here, but they've all been added below!\n\nWe're looking forward to the amazing things everyone will build on the platform!\n\n*2017.09.19*\n\n#react-viro v1.1.0 | react-viro-cli v1.1.0 (Compatible with React Native v0.43)\n\n## New Features\n\n**Stereoscopic Image/Video Support** - We added support for stereoscopic 3D assets! Check out the new `stereoMode` prop for image and video components in the API References.\n**onFuse Callbacks** - Another frequently requested feature, we added onFuse callbacks to all interactable components so you can now fuse to your heart's content.\n**Image Fill Types** - Allows developers to better control the display and size of their images. Refer to [ViroImage](doc:viroimage).\n**Normal Materials** - Support for normal materials will make scenes and objects look even more realistic. Best if use in conjunction with lights.\n**Buffering Start/End Notification** - Buffering notification support for videos. Now you can display an awesome [ViroSpinner](doc:virospinner) if your videos buffer!\n**Additional SceneNavigation Functionality** - Read more about it at [Scene Navigation](doc:scene-navigation).\n** New Code Samples ** - Product Showcase and VR Media Player - We just added two more new and awesome code samples with which to play and get started! Check them out here: [Code Samples](doc:code-samples).\n\n## Fixes\n- Too many to list here, but our platform is now more stable and performs better! If you see anything, feel free to contact us or file an issue at the link at the top of this page.\n\n## Upgrade Instructions\n\nFor those of you running `react-viro v1.0.0`, the following instructions will guide you through updating your Viro project.\n\n1. In your terminal, run the command `npm update -g react-viro-cli` - this will update your react-viro-cli to the latest and will ensure that you won't need to perform this step every time you do `react-viro init`\n2. Change these dependencies in your Viro project's `package.json` file:\n  - react 15.4.2 -> 16.0.0-alpha.6\n  - react-native 0.41.2 -> 0.43.3\n  - react-viro 1.0.0 -> 1.1.0\n  - react-test-renderer 15.4.2 -> 16.0.0-alpha.6\n\n  Your package.json dependencies should now look like the following:\n  ```\n  \"dependencies\": {\n    \"react\": \"16.0.0-alpha.6\",\n    \"react-native\": \"0.43.3\",\n    \"react-viro\": \"1.1.0\"\n  },\n  \"devDependencies\": {\n    \"babel-jest\": \"19.0.0\",\n    \"babel-preset-react-native\": \"1.9.1\",\n    \"jest\": \"19.0.2\",\n    \"react-test-renderer\": \"16.0.0-alpha.6\"\n  },\n```\n3. Also in your `package.json` add the following line to the `scripts` section: `    \"prestart\": \"./node_modules/react-viro/bin/run_ngrok.sh\",`\n4. Simply run `npm install`. Once that completes, you should now be able to use our v1.1.0 features!\n\n#react-viro v1.0.0 (Compatible with react-native v0.41.2)\n\nThis is it! We've launched our v1.0.0 and with it we have Cardboard for Android/iOS, GearVR and Daydream support! We're excited for you to get started developing, so head on over to our website and [sign up](http://www.viromedia.com/signup) for a key to access Viro!\n\np.s. As with all new releases (especially one as grand as this), there may be a few small issues so bear with us as we iron out the kinks. Check out the links at the top of this page if you need to contact us.","excerpt":"","slug":"releases","type":"basic","title":"Releases"}
[block:callout] { "type": "info", "title": "Every react-viro release has a `Compatible with React Native` version", "body": "This means that we have extensively tested ViroReact to work with that version of react-native. While older or newer versions of react-native may work with Viro, there may be issues or differences that cause ViroReact to not work properly with older or newer versions of react-native." } [/block] <span style="font-size:25px;font-weight:700"><a href="">ViroReact v2.12.0</a></span><span style="margin-left:20px;margin-bottom:10px;line-height:6px;height:26px;border:1px solid; border-radius:2px; border-color:#2cbe4e; color:#2cbe4e; display:inline-block;padding-top:3px;padding-bottom:3px;padding-left:4px;padding-right:4px;"> <span style="padding-bottom:5px">Latest release</span> </span> <table style="border:0px"><tr style="border:0px"><td style="border:0px">(react-viro v2.12.0 | react-viro-cli v2.12.0 | Compatible with React Native v0.55.1)</td><td style="border:0px">11/15/2018</td></tr></table> ## New Features and Improvements * **ARCore 1.5 support!** * Updated isARSupportedOnDevice() method to return an enum detailing ARCore's reason when AR is unavailable. * Support for enabling/disabling multisampling as a prop in Viro(X)SceneNavigator. Disabled by default. * Added unproject/project methods for Camera intrinsics. ## Bug Fixes * Improved battery-life performance and reduced heat * Polyline rendering fixes ([Github Issue #429](https://github.com/viromedia/viro/issues/429)) * Memory leak fixes ([Github Issue #466](https://github.com/viromedia/viro/issues/466)) * Fixed looping and resetting issues with sound components * Adreno 320 fix ([Github Issue #465](https://github.com/viromedia/viro/issues/465)) * Removed unused react-native imports ([Github Issue #412](https://github.com/viromedia/viro/issues/412)) * Fixed incorrect hit points returned by HighAccuracyEvents * Fixed discoloration and brightness issues while recording video * Fixed dragging issues with FixedToPlane ([Github Issue #160](https://github.com/viromedia/virocore/issues/160)) ## Upgrade Instructions ** Update `react-viro-cli`** 1. From the terminal, simply run `npm update -g react-viro-cli` 2. Now any `react-viro init <project>` will initialize a Viro 2.12.0 project ** Update `package.json`** 1. Update your `react-viro` package version to `2.12.0` 2. Delete the `node_modules`. 3. Run `npm install` to install the updated versions. [block:api-header] {} [/block] <span style="font-size:25px;font-weight:700"><a href="">ViroReact v2.11.0</a></span> <table style="border:0px"><tr style="border:0px"><td style="border:0px">(react-viro v2.11.0 | react-viro-cli v2.11.0 | Compatible with React Native v0.55.1)</td><td style="border:0px">9/20/2018</td></tr></table> ## New Features and Improvements * Support for adding [custom geometry](doc:virogeometry) to a scene * **iOS ARKit 2 support!** * ARKit 2.0: Support for [continuous image tracking](https://docs.viromedia.com/docs/ar-image-recognition#continuous-image-tracking-ios-12-only)! * ARKit 2.0: Support for [3d object detection](doc:viroarobjectmarker). ## Bug Fixes * Fixed several bugs related to Polylines including polyline distortion and lighting ([Github Issue #179](https://github.com/viromedia/virocore/issues/179)) * Fixed bugs related to rendering of transparent GIFs ([Github Issue #409](https://github.com/viromedia/viro/issues/409)) ## Upgrade Instructions ** Update `react-viro-cli`** 1. From the terminal, simply run `npm update -g react-viro-cli` 2. Now any `react-viro init <project>` will initialize a Viro 2.11.0 project ** Update `package.json`** 1. Update your `react-viro` package version to `2.11.0` 2. Delete the `node_modules`. 3. Run `npm install` to install the updated versions. [block:api-header] {} [/block] <span style="font-size:25px;font-weight:700"><a href="">ViroReact v2.10.0</a></span> <table style="border:0px"><tr style="border:0px"><td style="border:0px">(react-viro v2.10.0 | react-viro-cli v2.10.0 | Compatible with React Native v0.55.1)</td><td style="border:0px">8/28/2018</td></tr></table> ## New Features and Improvements - ViroAnimatedImage for playing animated GIF images! - ARCore 1.4.0 integration with Camera AutoFocus and new HitTestRay method - renderingOrder prop for most components to enable developers to determine how they want to occlude nodes in the scene. - colorWriteMask in MaterialPropTypes to indicate what colors should be written to the screen when rendering a Material. - Enables filtering out a base color (e.g. red) from the Material. - Implement "transparent occlusion planes" by turning off all color writing for a Material (in conjunction with renderingOrder). - New FixedDistanceOrigin drag type ## Bug Fixes * Fixed bug where rotation prop on Camera was not working ## Upgrade Instructions ** Update `react-viro-cli`** 1. From the terminal, simply run `npm update -g react-viro-cli` 2. Now any `react-viro init <project>` will initialize a Viro 2.10.0 project ** Update `package.json`** 1. Update your `react-viro` package version to `2.10.0` 2. Delete the `node_modules`. 3. Run `npm install` to install the updated versions. [block:api-header] {} [/block] <span style="font-size:25px;font-weight:700"><a href="">ViroReact v2.9.1</a></span> <table style="border:0px"><tr style="border:0px"><td style="border:0px">(react-viro v2.9.1 | react-viro-cli v2.9.1 | Compatible with React Native v0.55.1)</td><td style="border:0px">8/15/2018</td></tr></table> ## New Features and Improvements * More text options: 3D text, outlined text, and drop shadowed text! * Create 3D text by setting [extrusion depth](doc:virotext2#section-3d-text) * Create outlined and drop-shadow text by setting [outer stroke](doc:virotext2#section-outline-and-drop-shadow) * New [renderer settings](doc:viroarscenenavigator#section-optional-props) enable you to enable or disable features like HDR, PBR, and Shadows * Render [concave polygons](doc:viropolygon), and polygons with holes * [Override the duration](doc:viro3dobject#section-optional-props) of skeletal and keyframe animations in code * Improved text rendering speed ## Bug Fixes * Stability improvements * Fixed error where screenshots appeared black on some devices ## Upgrade Instructions ** Update `react-viro-cli`** 1. From the terminal, simply run `npm update -g react-viro-cli` 2. Now any `react-viro init <project>` will initialize a Viro 2.9.1 project ** Update `package.json`** 1. Update your `react-viro` package version to `2.9.1` 2. Delete the `node_modules`. 3. Run `npm install` to install the updated versions. [block:api-header] {} [/block] <span style="font-size:25px;font-weight:700"><a href="">ViroReact v2.8.2</a></span> <table style="border:0px"><tr style="border:0px"><td style="border:0px">(react-viro v2.8.2 | react-viro-cli v2.8.2 | Compatible with React Native v0.55.1)</td><td style="border:0px">7/17/2018</td></tr></table> ## Bug Fixes * Fixed issue on Android where model loading caused crash. * Fixed animation bug where starting and stopping and animation wasn't working properly. ## Upgrade Instructions ** Update `react-viro-cli`** 1. From the terminal, simply run `npm update -g react-viro-cli` 2. Now any `react-viro init <project>` will initialize a Viro 2.8.2 project ** Update `package.json`** 1. Update your `react-viro` package version to `2.8.2` 2. Delete the `node_modules`. 3. Run `npm install` to install the updated versions. [block:api-header] {} [/block] <span style="font-size:25px;font-weight:700"><a href=""><a href="">ViroReact v2.8.1</a></span> <table style="border:0px"><tr style="border:0px"><td style="border:0px">(react-viro v2.8.1 | react-viro-cli v2.8.1 | Compatible with React Native v0.55.1)</td><td style="border:0px">7/6/2018</td></tr></table> ## New Features and Improvements * GLTF skeletal animation support! * `<ViroCamera>` component for affixing scene elements to the camera * Added `onCameraTransformUpdate` so you can respond to all camera changes * Improved sharpness of text * Performance improvements when loading models ## Bug Fixes * Corrected issues with changing chroma key filtering color * Fixed issue where onAnchorFound reported the wrong initial value * Fixed bug where camera did not always inherit from parent nodes ## Upgrade Instructions ** Update `react-viro-cli`** 1. From the terminal, simply run `npm update -g react-viro-cli` 2. Now any `react-viro init <project>` will initialize a Viro 2.8.1 project ** Update `package.json`** 1. Update your `react-viro` package version to `2.8.1` 2. Delete the `node_modules`. 3. Run `npm install` to install the updated versions. <br> [block:api-header] {} [/block] <span style="font-size:25px;font-weight:700"><a href="">ViroReact v2.7.3</a></span> <table style="border:0px"><tr style="border:0px"><td style="border:0px">(react-viro v2.7.3 | react-viro-cli v2.7.3 | Compatible with React Native v0.55.1)</td><td style="border:0px">6/5/2018</td></tr></table> ## Bug Fixes * Fix bug where shadow planes were visible (on iOS) ## Upgrade Instructions ** Update `react-viro-cli`** 1. From the terminal, simply run `npm update -g react-viro-cli` 2. Now any `react-viro init <project>` will initialize a Viro 2.7.3 project ** Update `package.json`** 1. Update your `react-viro` package verstion to `2.7.3` 2. Delete the `node_modules`. 3. Run `npm install` to install the updated versions. <br> [block:api-header] {} [/block] <span style="font-size:25px;font-weight:700"><a href="">ViroReact v2.7.1</a></span> <table style="border:0px"><tr style="border:0px"><td style="border:0px">(react-viro v2.7.1 | react-viro-cli v2.7.1 | Compatible with React Native v0.55.1)</td><td style="border:0px">5/29/2018</td></tr></table> ## Bug Fixes * Fix bug where shadow planes were visible (on Android) * Minor bug fixes ## Upgrade Instructions ** Update `react-viro-cli`** 1. From the terminal, simply run `npm update -g react-viro-cli` 2. Now any `react-viro init <project>` will initialize a Viro 2.7.1 project ** Update `package.json`** 1. Update your `react-viro` package verstion to `2.7.1` 2. Delete the `node_modules`. 3. Run `npm install` to install the updated versions. <br> [block:api-header] {} [/block] <span style="font-size:25px;font-weight:700"><a href="">ViroReact v2.7.0</a></span> <table style="border:0px"><tr style="border:0px"><td style="border:0px">(react-viro v2.7.0 | react-viro-cli v2.7.0 | Compatible with React Native v0.55.1)</td><td style="border:0px">5/24/2018</td></tr></table> ## New Features * __GLTF Model Loading__ * Support for loading [GLTF models](doc:3d-objects#section-gltf) in GLTF and GLB formats. * __ARCore 1.2 support__ * Improved image detection * Detect vertical planes * Much [wider range][1] of supported devices * __Alpha Video__ * [Chroma-key filtering](doc:video#alpha-video-chroma-key-filtering) enables [hologram][2] videos in AR * __And More__ * Fixed to Plane dragging: drag nodes across fixed, user-specified planes * HDR tone-mapping is now performed only on HDR-lit areas of the scene, providing better camera fidelity * Text has been sharpened ## Bug Fixes * The model loaded callback is not invoked until *all* textures are loaded * Video recorder no longer fails on second recording * Raw solid material colors are now linearized correctly * Mali GPU over-saturation has been fixed * Physics quads no longer fall through the floor ## Breaking API Changes * ARScene onAmbientLightUpdate now takes a float intensity, and RGB color array as input instead of a color temperature. <br> [1]:https://developers.google.com/ar/discover/supported-devices [2]:https://www.youtube.com/watch?v=68-bjoF1Vdk [block:callout] { "type": "info", "title": "Compatible with Testbed App v2.7.0", "body": "An updated testbed app was provided with this update. Please use Testbed apps with v2.7.0 at the bottom of the testbed entry screen." } [/block] ## Upgrade Instructions ** Update `react-viro-cli`** 1. From the terminal, simply run `npm update -g react-viro-cli` 2. Now any `react-viro init <project>` will initialize a Viro 2.7.0 project ** Update `rn-cli.config.js`** 1. Navigate to your rn-cli.config.js file (should be in the root directory of your react native workspace). 2. Under "getAssetExts", add the additional following extensions: "gltf", "glb", "bin". It should look like this: [block:code] { "codes": [ { "code": "getAssetExts() {\n return [\"obj\", \"mtl\", \"JPG\", \"vrx\", \"hdr\", \"gltf\", \"glb\", \"bin\"];\n},", "language": "json", "name": "rn-cli.config.js" } ] } [/block] ** Update `package.json`** 1. Update the following dependencies: [block:code] { "codes": [ { "code": " \"dependencies\": {\n \"react\": \"16.3.1\",\n \"react-native\": \"0.55.1\",\n \"react-viro\": \"2.7.0\"\n },\n \"devDependencies\": {\n ...\n \"react-test-renderer\": \"16.3.1\"\n },", "language": "json" } ] } [/block] 2. Remove earlier installed node_modules by running `rm -rf node_modules`. 3. Run `npm install` to install all node_modules per new package.json edits above. <br> [block:api-header] {} [/block] <span style="font-size:25px;font-weight:700"><a href="">ViroReact v2.6.1</a></span> <table style="border:0px"><tr style="border:0px"><td style="border:0px">(react-viro v2.6.1 | react-viro-cli v2.6.1 | Compatible with React Native v0.55.1)</td><td style="border:0px">4/23/2018</td></tr></table> ## Bug Fixes * Fixed material reloading bug on Android. Reloading with new materials resulted in an error, which is now fixed. * Fixed RN v0.55.1 bug on iOS where` babel-preset-react-native` package results in an error. <br> [block:callout] { "type": "info", "title": "Compatible with Testbed App v2.6.0", "body": "An updated testbed app was not required for this platform update. Please continue to use Testbed apps with v2.6.0 at the bottom of the testbed entry screen." } [/block] ## Upgrade Instructions ** Update `react-viro-cli`** 1. From the terminal, simply run `npm update -g react-viro-cli` 2. Now any `react-viro init <project>` will initialize a Viro 2.6.1 project ** Update `package.json`** 1. Update the following dependencies: [block:code] { "codes": [ { "code": " \"dependencies\": {\n \"react\": \"16.3.1\",\n \"react-native\": \"0.55.1\",\n \"react-viro\": \"2.6.1\"\n },\n \"devDependencies\": {\n ...\n \"react-test-renderer\": \"16.3.1\"\n },", "language": "json" } ] } [/block] 2. Remove earlier installed node_modules by running `rm -rf node_modules`. 3. Run `npm install` to install all node_modules per new package.json edits above. <br> [block:api-header] {} [/block] <span style="font-size:25px;font-weight:700"><a href="">ViroReact v2.6.0</a></span> <table style="border:0px"><tr style="border:0px"><td style="border:0px">(react-viro v2.6.0 | react-viro-cli v2.6.0 | Compatible with React Native v0.55.1)</td><td style="border:0px">4/19/2018</td></tr></table> ## New Features * __Support for Image Recognition on Android__ * Added support for [ViroARImageMarker](doc:viroarimagemarker) on Android. <br> * __Upgraded to React Native 0.55.1__ * Updated Viro React to work with React Native 0.55.1 <br> * __Misc__ * Updated ARCore support to ARCore 1.1 * Callback added when Preloading Sound completes ([Github Issue #201](https://github.com/viromedia/viro/issues/201)) ## Bug Fixes * Fixed: Set click events crash on ViroScene * Fixed: Setting Gravity no longer overwrites Physics Disable Property ([Github Issue #208](https://github.com/viromedia/viro/issues/208#issuecomment-378902461)) * Fixed: Preloading local sound no longer fails on Android ## Upgrade Instructions ** Update `react-viro-cli`** 1. From the terminal, simply run `npm update -g react-viro-cli` 2. Now any `react-viro init <project>` will initialize a Viro 2.6.0 project ** Update `package.json`** 1. Update the following dependencies: [block:code] { "codes": [ { "code": " \"dependencies\": {\n \"react\": \"16.3.1\",\n \"react-native\": \"0.55.1\",\n \"react-viro\": \"2.6.0\"\n },\n \"devDependencies\": {\n ...\n \"react-test-renderer\": \"16.3.1\"\n },", "language": "json" } ] } [/block] 2. Remove earlier installed node_modules by running `rm -rf node_modules`. 3. Run `npm install` to install all node_modules per new package.json edits above. **For Testbed App Users** Download the latest iOS and/or Android Testbed Apps. Make sure the version at the bottom of the Enter Testbed screen is `React Viro v2.6.0` <br> **For Android Studio Users** Open Android Studio, sync your project and you're good to go! **For Xcode Users** Navigate to your `ios` directory and run `pod install`. Then open the `<project_name>.xcworkspace` in Xcode and you are set! <br> [block:api-header] {} [/block] <span style="font-size:25px;font-weight:700"><a href="">ViroReact v2.5.1</a></span> <table style="border:0px"><tr style="border:0px"><td style="border:0px">(react-viro v2.5.1 | react-viro-cli v2.5.1 | Compatible with React Native v0.49.3)</td><td style="border:0px">4/4/2018</td></tr></table> ## New Features * __Support for ARKit 1.5 via Testbed App__ * Vertical Planes (see [ViroARPlane](doc:viroarplane)) * Image/Marker Tracking (see [ViroARImageMarker](doc:viroarimagemarker)) * Autofocus (see [ViroARSceneNavigator](doc:viroarscenenavigator)'s `autofocus` prop) * 1080p support (see [ViroARSceneNavigator](doc:viroarscenenavigator)'s `videoQuality` prop) * Set world origin (see [ViroARSceneNavigator](doc:viroarscenenavigator) `setWorldOrigin` function) <br> * __3D SceneView__ * Build non AR/VR 3D applications with ViroReact ([Github Issue #166](https://github.com/viromedia/viro/issues/166)) <br> * __Polygon Planes__ * Render polygon planes in ARKit and ARCore <br> * __Improved Text and Fonts__ * Internationalization: support for Chinese, Japanese, and Korean characters ([Github Issue #186](https://github.com/viromedia/viro/issues/186)) * Render mixed-language text by specifying a list of font families * Support for more system fonts on Android, including system font groups ('monospace', 'cursive', etc.) * Improved font specification: choose font weight (100 to 900) and font style (italic) ([Github Issue #143](https://github.com/viromedia/viro/issues/143)) <br> * __New Trackable States for ARCore/ARKit__ * TRACKING_UNAVAILABLE: AR Camera position is not available * TRACKING_LIMITED: Tracking is available but quality of results can be may be inaccurate * TRACKING_NORMAL: Camera position tracking is providing optimal results <br> * __And More!__ * Enable Alpha Channel for Gaussian Blur Bloom Shaders * Video textures over 3D Objects ([Github #136](https://github.com/viromedia/viro/issues/136)) * Non-full screen mode for AR and 360 * Exoplayer upgrade to version 2.7.1 * Added support for x86_64 architecture on iOS * Enables the iOS simulator (warning: this uses software emulated OpenGL -- so it's slow!) ## Bug Fixes * Fixed: Android Testbed app will no longer cache initial scene * Fixed: Improved method to detect if ARCore is supported on a device ([Github Issue #171](https://github.com/viromedia/viro/issues/171)) * Fixed: Objects were not appearing at far distances ([Github Issue #194](https://github.com/viromedia/viro/issues/194)) * Fixed: Colors were dark when recording video on some Android devices * Fixed: FBX bounding box returned incorrect values * Fixed: ViroView would rotate upon re-entering AR * Fixed: Bloom would cause the entire AR camera to brighten ## Breaking API Changes None. ## Upgrade instructions ** Update `react-viro-cli`** 1. From the terminal, simply run `npm update -g react-viro-cli` 2. Now any `react-viro init <project>` will initialize a Viro 2.5.1 project ** Update `package.json`** 1. Update the `react-viro` version in your `package.json` file to `2.5.1` 2. Run `npm install` to pull down the updated `react-viro` version ** Update `rn-cli.config.js` ** 1. Open the `rn-cli.config.js` file at the root of your project. 2. Add `"hdr"` to the array returned by the `getAssetsExts()` function. <br> ** For Testbed App Users ** Download the latest iOS and/or Android Testbed Apps. Make sure the version at the bottom of the Enter Testbed screen is `React Viro v2.5.1` <br> **For Android Studio Users** If you're using AR, you'll need to add the following line to your `AndroidManifest.xml` under the `<application/>` node: ```<meta-data android:name="com.google.ar.core" android:value="optional" />``` Also, when AR starts, you'll be prompted to install the ARCore 1.0 APK. <br> **For Xcode Users** [block:callout] { "type": "warning", "title": "If you were using Viro React beta features (ARKit 1.5/iOS 11.3 beta)...", "body": "You'll need to change back your `Podfile` to point to the correct ViroKit:\n\n``` pod 'ViroKit', :path => '../node_modules/react-viro/ios/dist/ViroRenderer/'```" } [/block] Navigate to your `ios` directory and run `pod install`. Then open the `<project_name>.xcworkspace` in Xcode and you are set! <br> <br> [block:api-header] { "title": "ViroReact v2.4.0" } [/block] <table style="border:0px"><tr style="border:0px"><td style="border:0px">(react-viro v2.4.0 | react-viro-cli v2.4.0 | Compatible with React Native v0.49.3)</td><td style="border:0px">2/27/2018</td></tr></table> New release with some big new features! ## New Features * __Support for ARKit 1.5__ * Vertical Planes (see [ViroARPlane](doc:viroarplane)) * Image/Marker Tracking (see [ViroARImageMarker](doc:viroarimagemarker)) * Toggle autofocus (see [ViroARSceneNavigator](doc:viroarscenenavigator)'s `autofocus` prop) * 1080p support (see [ViroARSceneNavigator](doc:viroarscenenavigator)'s `videoQuality` prop) * Set world origin (see [ViroARSceneNavigator](doc:viroarscenenavigator) `setWorldOrigin` function) * __Support for ARCore 1.0__ * API to trigger an install of ARCore if ARCore is not present on the device * API to check if a user device is capable of running ARCore * __Support for [Physically Based Rendering](doc:physically-based-rendering) (PBR)__ * New metalness, roughness, and ambient occlusion [ViroMaterials](doc:materials) properties * [Image-based][1] diffuse and specular lighting * Lights can now be specified physically through temperature (Kelvins) and intensity (Lumens) * Updated ViroFBX tool (for FBX to VRX conversion) can be found in your projects ```node_modules/react-viro/bin``` directory * __And more!__ * Textures can now be tiled over surfaces * API to set the field of view on [ViroCamera](doc:virocamera) * Added screen, multiply, and subtract blend modes * Added support for Spatial Audio on iOS [1]:https://docs.viromedia.com/v2.4.0/docs/physically-based-rendering#image-based-lighting [block:callout] { "type": "info", "title": "ARKit 1.5 is currently in developer preview", "body": "You can not distribute apps using ARKit 1.5 features until Apple releases it to the public (Spring 2018). As such, the Viro Media Testbed app does not support ARKit 1.5 features at this time. To develop using ARKit 1.5 features, you will need to upgrade to XCode 9.3 beta and use XCode to compile and run." } [/block] ## Bug Fixes * Fixed: Framerate drop in AR scene with large 3D models. * Fixed: Weak global reference crash if device was idle for extended time * Fixed: Black screen on Mail-T720 GPU devices (i.e. A5 2016) * Fixed: Crash on invalid URIs * Fixed: various FBX keyframe and skeletal animation bugs ## Breaking API Changes * Spotlight: the inner angle and outer angle of spotlights have changed! Now the inner angle represents the angle from edge to edge of the fully lit cone, and the outer angle represents the angle from edge to edge of the attenuated cone. ## Upgrade instructions ** Update `react-viro-cli`** 1. From the terminal, simply run `npm update -g react-viro-cli` 2. Now any `react-viro init <project>` will initialize a Viro 2.4.0 project **Update `package.json`** 1. Update the `react-viro` version in your `package.json` file to `2.4.0` 2. Run `npm install` to pull down the updated `react-viro` version ** Update `rn-cli.config.js` ** 1. Open the `rn-cli.config.js` file at the root of your project. 2. Add `"hdr"` to the array returned by the `getAssetsExts()` function. <br> **For Testbed App Users** Download the latest iOS and/or Android Testbed Apps. Make sure the version at the bottom of the Enter Testbed screen is `React Viro v2.4.0` <br> **For Android Studio Users** If you're using AR, you'll need to add the following line to your `AndroidManifest.xml` under the `<application/>` node: ```<meta-data android:name="com.google.ar.core" android:value="optional" />``` Also, when AR starts, you'll be prompted to install the ARCore 1.0 APK. <br> **For Xcode Users** Navigate to your `ios` directory and run `pod install`. Then open the `<project_name>.xcworkspace` in Xcode and you are set! <br> <br> [block:api-header] { "title": "ViroReact v2.3.0" } [/block] <table style="border:0px"><tr style="border:0px"><td style="border:0px">(react-viro v2.3.0 | react-viro-cli v2.3.0 | Compatible with React Native v0.49.3)</td><td style="border:0px">1/16/2018</td></tr></table> ## Updates 1. ARCore Preview 2 Support - we've updated from ARCore Preview 1 to Preview 2. 2. Added `performARHitTestWithPoint` to [ViroARScene](doc:viroarscene) which allows users to perform hit tests w/ 2D points (in pixels). 3. Added `resetARSession` to [ViroARSceneNavigator](doc:viroarscenenavigator) which allows users to reset the AR session (iOS only) 4. Updated iOS project to properly manage dependencies with CocoaPods. 5. Fixed a lot of bugs in the platform. [block:callout] { "type": "info", "title": "ARCore Development", "body": "If you are developing for ARCore. Install Google's ARCore Preview 2 client on your device. Instructions from Google are [here](https://developers.google.com/ar/develop/java/getting-started) under 'Prepare your device'." } [/block] ## Upgrade Instructions **Update `package.json`** 1. Update the `react-viro` version in your `package.json` file to `2.3.0` 2. Run `npm install` to pull down the updated `react-viro` version **For Testbed App Users** Download the latest iOS and/or Android Testbed Apps. Make sure the version at the bottom of the Enter Testbed screen is `React Viro v2.3.0` **For Android Studio Users** That's it! Just open up your project and perform a gradle sync. **For Xcode Users** 1. Go to your `Podfile` (usually at `<project_name>/ios/Podfile`) then update it to look like the following: ``` platform :ios, '9.3' target '<PROJECT_NAME>' do use_frameworks! pod 'ViroReact', :path => '../node_modules/react-viro/ios/' pod 'ViroKit', :path => '../node_modules/react-viro/ios/dist/ViroRenderer/' end ``` 2. In the same directory as your `Podfile` run `pod update`. 3. Open your workspace and under your Project -> Build Settings -> Dead Code Stripping, set both Debug and Release values to `Yes`. 4. Now clean & build your project! ** Update `react-viro-cli`** 1. From the terminal, simply run `npm update -g react-viro-cli` 2. Now any `react-viro init <project>` will initialize a Viro 2.3.0 project <br> <br> [block:api-header] { "title": "ViroReact v2.2.0" } [/block] <table style="border:0px"><tr style="border:0px"><td style="border:0px">(react-viro v2.2.0 | react-viro-cli v2.2.0 | Compatible with React Native v0.49.3)</td><td style="border:0px">12/20/2017</td></tr></table> This update contains mostly under-the-hood updates and fixes. ## Updates **Underlying VR platform SDKs have been updated**: - Updated Google VR (Android) to version 1.110 - Updated Google VR (iOS) to version 1.100 - Updated Oculus VR Mobile SDK to 1.9.0 **AR World Alignment (iOS only)** - Has your world felt a little uneven/unstable recently? Well, suffer no more, as we have exposed a `worldAlignment` property for [ViroARSceneNavigator](doc:viroarscenenavigator) so you can finally realign your world however you see fit. **AR PointCloud Data** - In the past only we had access to the point cloud data and only let you dictate how we display the points, but now you too have access to the raw point data (see `onARPointCloudUpdate` in [ViroARScene](doc:viroarscene)) . Remember: "With great power comes great responsibility!" **AR onHover Support** - In past releases, we were simply looking, but not seeing. Now when you look at things, they respond! onHover callbacks on components will now work in AR using the center of the camera. **Fixed Bugs** - Fixed bug with reticle scaling - Fix issue with collision normals in physics system - Fix freezing issue when loading FBX models on Oculus VR and other miscellaneous bugs and performance improvements. If you notice anything broken, feel free to reach out to us on our issues link above! ## Upgrade instructions **Update `package.json`** 1. Update the `react-viro` version in your `package.json` file to `2.2.0` 2. Run `npm install` to pull down the updated `react-viro` version 3. That's it! You should now be on `React Viro v2.2.0`. ** Update `react-viro-cli`** 1. From the terminal, simply run `npm update -g react-viro-cli` 2. Now any `react-viro init <project>` will initialize a Viro 2.2.0 project <br> <br> [block:api-header] { "title": "ViroReact v2.1.0" } [/block] <table style="border:0px"><tr style="border:0px"><td style="border:0px">(react-viro v2.1.0 | react-viro-cli v2.1.0 | Compatible with React Native v0.49.3)</td><td style="border:0px">11/16/2017</td></tr></table> Viro React's v2.1.0 release coincides with the Android-only [ViroCore](https://virocore.viromedia.com/) Java API which allows Android/Java developers to write AR/VR apps using the same renderer we use in Viro React. In this release, we've updated the platform with ARCore support on Android, added a few more features and fixed some bugs detailed below. ## Updates **Android AR Support** - We now support building AR apps on Android using the same AR components we released in v2.0.0 using Google's ARCore API on the following [devices](https://developers.google.com/ar/discover/#supported_devices). **Updated ARPlane** - Developers can now listen for all plane anchors found and manually select the plane they want to use (See `id` prop of [ViroARPlane](doc:viroarplane)). **AR Point Cloud** - The platform can now draw AR point clouds and developers can customize how it looks (See `displayPointCloud` prop of [ViroARScene](doc:viroarscene)). **HLS Video Support for Android** - We missed this in our previous releases, but the platform now supports HLS videos on [ViroVideo](doc:virovideo-2-compare) and [Viro360Video](doc:viro360video-1) components. **AR Camera Hit Test** - We added the ability to constantly perform and retrieve hit test results based on where the user is looking. ## Upgrade Instructions **Updating `package.json`** Your `package.json` should like the following: ``` "dependencies": { "react": "16.0.0-beta.5", "react-native": "0.49.3", "react-viro": "2.1.0" }, "devDependencies": { "babel-jest": "21.2.0", "babel-preset-react-native": "4.0.0", "jest": "21.2.1", "react-test-renderer": "16.0.0-beta.5" }, ``` After updating the file, run `npm install` **Migration from `index.ios|android.js` to single `index.js`** Move/merge your `index.ios|android.js` files into a single `index.js` file. For legacy testbed support, update your `index.ios|android.js` files to look like the following: ``` import { AppRegistry } from 'react-native'; import MainIndex from './index.js'; AppRegistry.registerComponent('ViroSample', () => MainIndex); ``` **Update `React.createClass` to `create-react-class`** In React Native 0.49.3, `React.createClass` is no longer supported, as a result, you should use the `create-react-class` drop in substitute (explained below) or migrate over to ES6 classes (one example [here](https://www.newmediacampaigns.com/blog/refactoring-react-components-to-es6-classes)). In every file where `React.createClass` is present, simply add this line: ``` var createReactClass = require('create-react-class'); ``` Then simply replace usages of `React.createClass()` with `createReactClass()`. **Adding ARCore to Existing Projects** Modifying `<project_root>/android/settings.gradle` by adding/updating the following lines: ``` ... include ':react_viro', ':arcore_client', ':gvr_common', ':viro_renderer' project(':arcore_client').projectDir = new File('../node_modules/react-viro/android/arcore_client') ... ``` Update `<project_root>/android/app/build.gradle` by adding the line `compile project(':arcore_client')` in the `dependencies` section after the `compile 'com.facebook.react:react-native:+'` line. <br> <br> [block:api-header] { "title": "ViroReact v2.0.1" } [/block] <table style="border:0px"><tr style="border:0px"><td style="border:0px">(react-viro v2.0.1 | react-viro-cli v2.0.1 | Compatible with React Native v0.47.2)</td><td style="border:0px">10/04/2017</td></tr></table> A new release with some bug fixes! ## Updates - Fixed bug in ViroFBX binary so now multiple animations supported. - Fix crash on Adreno cards caused by large UBO. - Fixed onFuse reticle UI so it's no longer so large. - Fixed onFuse crash bug that occurs due to triggering invalid delegates. - Fixed Stereoscopic for Mono Mode. ## Upgrade Instructions To use `react-viro v2.0.1` in new projects upgrade our cli by doing `npm update -g react-viro-cli`. Then do 'react viro init MyProjectName' to use the new version. For existing projects using 2.0, upgrade the `react-viro` package to 2.0.1 in your package.json and then reinstall the react viro module: `rm -rf node_modules/react-viro && npm install` from your project directory. #react-viro v2.0.0 | react-viro-cli v2.0.0 (Compatible with React Native v0.47.2) It's here! We're happy to announce the release of ViroReact v2.0 with support for [Augmented Reality (AR)](doc:augmented-reality-ar) w/ Apple's ARKit! That means that you, everyone you know, and everyone you don't (because we're free to use) can use ViroReact to build the AR experiences you've been dreaming of building! Don't worry VR users, we didn't forget about you either! There are a lot of features that we've added to the core ViroReact platform like a full fledged *Physics* engine and *Particle* support (iOS only for now)! Read the notes below to see what other goodies we've packed into our v2.0 release! ## Updates **AR Support** - With our new Augmented Reality (AR) support, we've Augmented your world with our platform so that you can build AR stuff too! (iOS 11+ support only) **Physics Support** - Ever feel like you just weren't connecting with your objects? Well, with our new physics engine support, now you can! (All platforms supported!) **FBX Object Support** - FBX is to OBJ as cars are to horse-led carriages, it's that much better! Check out the [3D Objects](doc:3d-objects) guide. (All platforms supported!) **Particles Support** - Having a bad day? How about adding some confetti? Or fireworks? Or maybe some snow because you just can't wait for ski season to start? It's now a possibility with our platform! (iOS support only) **Shadows Support** - With Viro 1.0, we had lights. We've worked really hard, but now we also have shadows (iOS support only) **Animation Changes** - With Viro 2.0, we've decided to retire [ViroAnimatedComponent](doc:viroanimatedcomponent), but never fear, we've just decided to go with an `animation` prop on our components! Check out our [Animation](doc:animation) guide for more details. **Many Other Changes** - We've changed a whole lot, added a lot more callbacks and methods on various components. It's too long to list here, but they've all been added below! We're looking forward to the amazing things everyone will build on the platform! *2017.09.19* #react-viro v1.1.0 | react-viro-cli v1.1.0 (Compatible with React Native v0.43) ## New Features **Stereoscopic Image/Video Support** - We added support for stereoscopic 3D assets! Check out the new `stereoMode` prop for image and video components in the API References. **onFuse Callbacks** - Another frequently requested feature, we added onFuse callbacks to all interactable components so you can now fuse to your heart's content. **Image Fill Types** - Allows developers to better control the display and size of their images. Refer to [ViroImage](doc:viroimage). **Normal Materials** - Support for normal materials will make scenes and objects look even more realistic. Best if use in conjunction with lights. **Buffering Start/End Notification** - Buffering notification support for videos. Now you can display an awesome [ViroSpinner](doc:virospinner) if your videos buffer! **Additional SceneNavigation Functionality** - Read more about it at [Scene Navigation](doc:scene-navigation). ** New Code Samples ** - Product Showcase and VR Media Player - We just added two more new and awesome code samples with which to play and get started! Check them out here: [Code Samples](doc:code-samples). ## Fixes - Too many to list here, but our platform is now more stable and performs better! If you see anything, feel free to contact us or file an issue at the link at the top of this page. ## Upgrade Instructions For those of you running `react-viro v1.0.0`, the following instructions will guide you through updating your Viro project. 1. In your terminal, run the command `npm update -g react-viro-cli` - this will update your react-viro-cli to the latest and will ensure that you won't need to perform this step every time you do `react-viro init` 2. Change these dependencies in your Viro project's `package.json` file: - react 15.4.2 -> 16.0.0-alpha.6 - react-native 0.41.2 -> 0.43.3 - react-viro 1.0.0 -> 1.1.0 - react-test-renderer 15.4.2 -> 16.0.0-alpha.6 Your package.json dependencies should now look like the following: ``` "dependencies": { "react": "16.0.0-alpha.6", "react-native": "0.43.3", "react-viro": "1.1.0" }, "devDependencies": { "babel-jest": "19.0.0", "babel-preset-react-native": "1.9.1", "jest": "19.0.2", "react-test-renderer": "16.0.0-alpha.6" }, ``` 3. Also in your `package.json` add the following line to the `scripts` section: ` "prestart": "./node_modules/react-viro/bin/run_ngrok.sh",` 4. Simply run `npm install`. Once that completes, you should now be able to use our v1.1.0 features! #react-viro v1.0.0 (Compatible with react-native v0.41.2) This is it! We've launched our v1.0.0 and with it we have Cardboard for Android/iOS, GearVR and Daydream support! We're excited for you to get started developing, so head on over to our website and [sign up](http://www.viromedia.com/signup) for a key to access Viro! p.s. As with all new releases (especially one as grand as this), there may be a few small issues so bear with us as we iron out the kinks. Check out the links at the top of this page if you need to contact us.