{"id":30699427,"url":"https://github.com/rhdeck/react-native-vision","last_synced_at":"2025-09-02T11:04:48.359Z","repository":{"id":57341301,"uuid":"115672002","full_name":"rhdeck/react-native-vision","owner":"rhdeck","description":"Supporting advanced Vision and ML functionality with react native","archived":false,"fork":false,"pushed_at":"2018-12-15T12:04:43.000Z","size":4362,"stargazers_count":120,"open_issues_count":3,"forks_count":11,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-08-04T00:00:31.056Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rhdeck.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-12-29T01:02:15.000Z","updated_at":"2025-07-28T19:30:14.000Z","dependencies_parsed_at":"2022-09-14T04:30:21.482Z","dependency_job_id":null,"html_url":"https://github.com/rhdeck/react-native-vision","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rhdeck/react-native-vision","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhdeck%2Freact-native-vision","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhdeck%2Freact-native-vision/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhdeck%2Freact-native-vision/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhdeck%2Freact-native-vision/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rhdeck","download_url":"https://codeload.github.com/rhdeck/react-native-vision/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhdeck%2Freact-native-vision/sbom","scorecard":{"id":774202,"data":{"date":"2025-08-18","repo":{"name":"github.com/rhdeck/react-native-vision","commit":"0598c9889db146f88319a6ce3dd660ad6edc512a"},"scorecard":{"version":"v5.2.1-41-g40576783","commit":"40576783fda6698350fcbbeaea760ff827433034"},"score":2.9,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#dangerous-workflow"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#sast"}},{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: examples/Food101/android/gradle/wrapper/gradle-wrapper.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#code-review"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-23T03:05:08.478Z","repository_id":57341301,"created_at":"2025-08-23T03:05:08.478Z","updated_at":"2025-08-23T03:05:08.478Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273272560,"owners_count":25075985,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-02T02:00:09.530Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-09-02T11:03:46.500Z","updated_at":"2025-09-02T11:04:48.333Z","avatar_url":"https://github.com/rhdeck.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# react-native-vision\n\nLibrary for accessing VisionKit and visual applications of CoreML from React Native. **iOS Only**\n\nIncredibly super-alpha, and endeavors to provide a relatively thin wrapper between the underlying vision functionality and RN. Higher-level abstractions are @TODO and will be in a separate library.\n\n# Installation\n\n```\nyarn add react-native-vision react-native-swift\nreact-native link\n```\n\n**Note** `react-native-swift` is a peer dependency of `react-native-vision`.\n\nIf you are running on a stock RN deployment (e.g. from `react-native init`) you will need to make sure your app is targeting IOS 11 or higher:\n\n```bash\nyarn add react-native-fix-ios-version\nreact-native link\n```\n\nSince this module uses the camera, it will work much better on a device, and setting up permissions and codesigning in advance will help:\n\n```bash\nyarn add -D react-native-camera-ios-enable\nyarn add -D react-native-setdevteam\nreact-native link\nreact-native setdevteam\n```\n\nThen you are ready to run!\n\n```bash\nreact-native run-ios --device\n```\n\n# Command line - adding a Machine Learning Model with `add-mlmodel`\n\n`react-native-vision` makes it easier to bundle a pre-built machine learning model into your app.\n\nAfter installing, you will find the following command available:\n\n```bash\nreact-native add-mlmodel /path/to/mymodel.mlmodel\n```\n\nYou may also refere to the model from a URL, which is handy when getting something off the interwebs. For example, to apply the pre-built mobileNet model from apple, you can:\n\n```bash\nreact-native add-mlmodel https://docs-assets.developer.apple.com/coreml/models/MobileNet.mlmodel\n```\n\nNote that the name of your model in the code will be the same as the filename minus the \"mlmodel\". In the above case, the model in code can be referenced as \"MobileNet\"\n\n# Easy Start 1 : Full Frame Object Detection\n\nOne of the most common easy use cases is just detecting what is in front of you. For this we use the `VisionCamera` component that lets you apply a model and get the classification via render props.\n\n## Setup\n\n```bash\nreact-native init imagedetector; cd imagedetector\nyarn add react-native-swift react-native-vision\nyarn add react-native-fix-ios-version react-native-camera-ios-enable react-native-setdevteam\nreact-native link\nreact-native setdevteam\n```\n\n## Load your model with MobileNet\n\nA free download from Apple!\n\n```bash\nreact-native add-mlmodel https://docs-assets.developer.apple.com/coreml/models/MobileNet.mlmodel\n```\n\n## Add Some App Code\n\n```javascript\nimport React from \"react\";\nimport { Text } from \"react-native\";\nimport { VisionCamera } from \"react-native-vision\";\nexport default () =\u003e (\n  \u003cVisionCamera style={{ flex: 1 }} classifier=\"MobileNet\"\u003e\n    {({ label, confidence }) =\u003e (\n      \u003cText\n        style={{\n          width: \"75%\",\n          fontSize: 50,\n          position: \"absolute\",\n          right: 50,\n          bottom: 100\n        }}\n      \u003e\n        {label + \" :\" + (confidence * 100).toFixed(0) + \"%\"}\n      \u003c/Text\u003e\n    )}\n  \u003c/VisionCamera\u003e\n);\n```\n\n# Easy Start 2: GeneratorView - for Style Transfer\n\nMost machine learning application are classifiers. But generators can be useful and a lot of fun. The `GeneratorView` lets you look at style transfer models that show how you can use deep learning techniques for creating whole new experiences.\n\n## Setup\n\n```bash\nreact-native init styletest; cd styletest\nyarn add react-native-swift react-native-vision\nyarn add react-native-fix-ios-version react-native-camera-ios-enable react-native-setdevteam\nreact-native link\nreact-native setdevteam\n```\n\n## Load your model with `add-mlmodel`\n\nApple has not published a style transfer model, but there are a few locations on the web where you can download them. Here is one: https://github.com/mdramos/fast-style-transfer-coreml\n\nSo go to his github, navigate to his google drive, and then download the `la_muse` model to your personal Downloads directory.\n\n```bash\nreact-native add-mlmodel ~/Downloads/la_muse.mlmodel\n```\n\n## App Code\n\nThis is the insanely short part. Note that the camera view is not necessary for viewing the style-transferred view: its just for reference.\n\n```javascript\nimport React from \"react\";\nimport { GeneratorView, RNVCameraView } from \"react-native-vision\";\nexport default () =\u003e (\n  \u003cGeneratorView generator=\"FNS-The-Scream\" style={{ flex: 1 }}\u003e\n    \u003cRNVCameraView\n      style={{\n        position: \"absolute\",\n        height: 200,\n        width: 100,\n        top: 0,\n        right: 0\n      }}\n      resizeMode=\"center\"\n    /\u003e\n  \u003c/GeneratorView\u003e\n);\n```\n\n# Easy Start 3: Face Camera\n\nDetect what faces are where in your camera view!\n\nTaking a page (and the model!) from (https://github.com/gantman/nicornot)[Gant Laborde's NicOrNot app], here is the entirety of an app that discerns whether the target is nicolas cage.\n\n## Setup\n\n```bash\nreact-native init nictest; cd nictest\nyarn add react-native-swift react-native-vision\nyarn add react-native-fix-ios-version react-native-camera-ios-enable react-native-setdevteam\nreact-native link\nreact-native setdevteam\n```\n\n## Load your model with `add-mlmodel`\n\n```bash\nreact-native add-mlmodel https://s3.amazonaws.com/despiteallmyrage/MegaNic50_linear_5.mlmodel\n```\n\n## App Code\n\n```javascript\nimport React from \"react\";\nimport { Text, View } from \"react-native\";\nimport { FaceCamera } from \"react-native-vision\";\nimport { Identifier } from \"react-native-identifier\";\nexport default () =\u003e (\n  \u003cFaceCamera style={{ flex: 1 }} classifier=\"MegaNic50_linear_5\"\u003e\n    {({ face, faceConfidence, style }) =\u003e\n      face \u0026\u0026\n      (face == \"nic\" ? (\n        \u003cIdentifier style={{ ...style }} accuracy={faceConfidence} /\u003e\n      ) : (\n        \u003cView\n          style={{ ...style, justifyContent: \"center\", alignItems: \"center\" }}\n        \u003e\n          \u003cText style={{ fontSize: 50, color: \"red\", opacity: faceConfidence }}\u003e\n            X\n          \u003c/Text\u003e\n        \u003c/View\u003e\n      ))\n    }\n  \u003c/FaceCamera\u003e\n);\n```\n\n# Face Detection Component Reference\n\n## FacesProvider\n\nContext Provider that extends `\u003cRNVisionProvider /\u003e` to detect, track, and identify faces.\n\n### Props\n\nInherits from `\u003cRNVisionProvider /\u003e`, plus:\n\n- `interval`: How frequently (in ms) to run the face detection re-check. (Basically lower values here keeps the face tracking more accurate) **Default**: 500\n- `classifier`: File URL to compiled MLModel (e.g. mlmodelc) that will be applied to detected faces\n- `updateInterval`: How frequently (in ms) to update the detected faces - position, classified face, etc. Smaller values will mean smoother animation, but at the price of processor intensity. **Default**: 100\n\n### Example\n\n```javascript\n\u003cFacesProvider\n  isStarted={true}\n  isCameraFront={true}\n  classifier={this.state.classifier}\n\u003e\n  {/* my code for handling detected faces */}\n\u003c/FacesProvider\u003e\n```\n\n## FacesConsumer\n\nConsumer of `\u003cFacesProvider /\u003e` context. As such, takes no props and returns a render prop function.\n\n### Render Prop Members\n\n- `faces`: Keyed object of information about the detected face. Elements of each object include:\n  - `region`: The key associated with this object (e.g. `faces[k].region === k`)\n  - `x`, `y`, `height`, `width`: Position and size of the bounding box for the detected face.\n  - `faces`: Array of top-5 results from face classifier, with keys `label` and `confidence`\n  - `face`: Label of top-scoring result from classifier (e.g. the face this is most likely to be)\n  - `faceConfidence`: Confidence score of top-scoring result above.\n\nNote that when there is no classifier specified, `faces`, `face` and `faceConfidence` are undefined\n\n## Face\n\nRender prop generator to provision information about a single detected face.\nCan be instantiated by spread-propping the output of a single face value from `\u003cFacesConsumer\u003e` or by appling a `faceID` that maps to the key of a face. Returns null if no match.\n\n### Props\n\n- `faceID`: ID of the face (corresponding to the key of the `faces` object in `FacesConsumer`)\n\n### Render Prop Members\n\n- `region`: The key associated with this object (e.g. `faces[k].region === k`)\n- `x`, `y`, `height`, `width`: Position and size of the bounding box for the detected face. **Note** These are adjusted for the visible camera view when you are rendering from that context.\n- `faces`: Array of top-5 results from face classifier, with keys `label` and `confidence`\n- `face`: Label of top-scoring result from classifier (e.g. the face this is most likely to be)\n- `faceConfidence`: Confidence score of top-scoring result above.\n  **Note** These arguments are the sam\n\n## Faces\n\nA render-prop generator to provision information about all detected faces. Will map all detected faces into `\u003cFace\u003e` components and apply the `children` prop to each, so you have one function to generate all your faces. Designed to be similar to `FlatMap` implentation.\n\n### Required Provider Context\n\nThis component must be a descendant of a `\u003cFacesProvider\u003e`\n\n### Props\n\nNone\n\n### Render Prop Members\n\nSame as `\u003cFace\u003e` above, but output will be mapped across all detected faces.\n\nExample of use is in the primary Face Recognizer demo code above.\n\n### Props\n\n- `faceID`: ID of the face applied.\n- `isCameraView`: Whether the region frame information to generate should be camera-aware (e.g. is it adjusted for a preview window or not)\n\n### Render Props\n\nThis largely passes throught the members of the element that you could get from the `faces` collection from `FaceConsumer`, with the additional consideration that when `isCameraView` is set,\n\n- `style`: A spreadable set of styling members to position the rectangle, in the same style as a `RNVCameraRegion`\n\nIf `faceID` is provided but does not map to a member of the `faces` collection, the function will return null.\n\n# Core Component References\n\nThe package exports a number of components to facilitate the vision process. Note that the `\u003cRNVisionProvider /\u003e` needs to be ancestors to any others in the tree. So a simple single-classifier using dominant image would look something like:\n\n```javascript\n\u003cRNVisionProvider isStarted={true}\u003e\n  \u003cRNVDefaultRegion classifiers={[{url: this.state.FileUrlOfClassifier, max: 5}]}\u003e\n  {({classifications})=\u003e{\n    return (\n      \u003cText\u003e\n        {classifications[this.state.FileUrlOfClassifier][0].label}\n      \u003c/Text\u003e\n  }}\n  \u003c/RNVDefaultRegion\u003e\n\u003c/RNVisionProvider\u003e\n```\n\n## RNVisionProvider\n\nContext provider for information captured from the camera. Allows the use of regional detection methods to initialize identification of objects in the frame.\n\n### Props\n\n- `isStarted`: Whether the camera should be activated for vision capture. Boolean\n- `isCameraFront`: Facing of the camera. False for the back camera, true to use the front. _Note_ only one camera facing can be used at a time. As of now, this is a hardware limitation.\n- `regions`: Specified regions on the camera capture frame articulated as `{x,y,width,height}` that should always be returned by the consumer\n- `trackedObjects`: Specified regions that should be tracked as objects, so that the regions returned match these object IDs and show current position.\n- `onRegionsChanged`: Fires when the list of regions has been altered\n- `onDetectedFaces`: Fires when the number of detected faces has changed\n\n### Class imperative member\n\n- `detectFaces`: Triggers one call to detect faces based on current active frame. Directly returns locations.\n\n## RNVisionConsumer\n\nConsumer partner of `RNVisionProvider`. Must be its descendant in the node tree.\n\n### Render Prop Members\n\n- `imageDimensions`: Object representing size of the camera frame in `{width, height}`\n- `isCameraFront`: Relaying whether camera is currently in selfie mode. This is important if you plan on displaying camera output, because in selfie mode a preview will be mirrored.\n- `regions`: The list of detected rectangles in the most recently captured frame, where detection is driven by the `RNVisionProvider` props\n\n## RNVRegion\n\n### Props\n\n- `region`: ID of the region (**Note** the default region, which is the whole frame, has an id of `\"\"` - blank.)\n- `classifiers`: CoreML classifiers passed as file URLs to the classifier mlmodelc itself. Array\n- `generators`: CoreML image generators passed as file URLs to the classifier mlmodelc itself. Array\n- `generators`: CoreML models that generate a collection of output values passed as file URLs to the classifier mlmodelc itself.\n- `bottlenecks`: A collection of CoreML models that take other CoreML model outputs as their inputs. Keys are the file URLs of the original models (that take an image as their input) and values are arrays of mdoels that generate the output passed via render props.\n- `onFrameCaptured`: Callback to fire when a new image of the current frame in this region has been captured. Making non-null activates frame capture, setting to null turns it off. The callback passes a URL of the saved frame image file.\n\n### Render Prop members\n\n- `key`: ID of the region\n- `x, y, width, height`: the elements of the frame containing the region. All values expressed as percentages of the overall frame size, so a 50x100 frame at origin 5,10 in a 500x500 frame would come across as `{x: 0.01, y: 0.02, width: .1, height: .2}`. Changes in these values are often what drives the re-render of the component (and therefore re-run of the render prop)\n- `confidence`: If set, the confidence that the object identified as `key` is actually at this location. Used by tracked objects API of iOS Vision. Sometimes null.\n- `classifications`: Collection, keyed by the file URL of the classifier passed in props, of collections of labels and probabilities. (e.g. `{\"file:///path/to/myclassifier.mlmodelc\": {\"label1\": 0.84, \"label2\": 0.84}}`)\n- `genericResults`: Collection of generic results returned from generic models passed in via props to the region\n\n## RNVDefaultRegion\n\nConvenience region that references the full frame. Same props as `RNVRegion`, except `region` is always set to `\"\"` - the full frame. Useful for simple style transfers or \"dominant image\" classifiers.\n\n### Props\n\nSame as `RNVRegion`, with the exception that `region` is forced to `\"\"`\n\n### Render Prop Members\n\nSame as `RNVRegion`, with the note that `key` will always be `\"\"`\n\n## RNVCameraView\n\nPreview of the camera captured by the `RNVisionProvider`.\n**Note** that the preview is flipped in selfie mode (e.g. when `isCameraFront` is true)\n\n### Props\n\nThe properties of a `View` plus:\n\n- `gravity`: how to scale the captured camera frame in the view. String. Valid values:\n  - `fill`: Fills the rectangle much like the \"cover\" in an Image\n  - `resize`: Leaves transparent (or style:{backgroundColor}) the parts of the rectangle that are left over from a resized version of the image.\n\n## RNVCameraConsumer\n\nRender prop consumer for delivering additional context that regions will find helpful, mostly for rendering rectangles that map to the regions identified.\n\n### Render Prop Members\n\n- `viewPortDimensions`: A collection of `{width, height}` of the view rectangle.\n- `viewPortGravity`: A pass-through of the `gravity` prop to help decide how to manage the math converting coordinates.\n\n## RNVCameraRegion\n\nA compound consumer that blends the render prop members of `RNVRegion` and `RNVCameraConsumer` and adds a `style` prop that can position the region on a specified camera preview\n\n### Props\n\nSame as `RNVRegion`\n\n### Render Prop Members\n\nIncludes members from `RNVRegion` and `RNVCameraConsumer` and adds:\n\n- `style`: A pre-built colleciton of style prop members `{position, width, height, left, top}` that are designed to act in the context of the `RNVCameraView` rectangle. Spread-prop with your other style preferences (border? backgroundColor?) for easy on-screen representation.\n\n## RNVImageView\n\nView for displaying output of image generators. Link it to , and the resulting image will display in this view. Useful for style transfer models. More performant because there is no round trip to JavaScript notifying of each frame update.\n\n### Props\n\n- `id`: the ID of an image generator model attached to a region. Usually is the `file:///` URL of the .mlmodelc.\n\nOtherwise conforms to Image and View API.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhdeck%2Freact-native-vision","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frhdeck%2Freact-native-vision","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhdeck%2Freact-native-vision/lists"}