{"id":28122643,"url":"https://github.com/webarkit/arnft","last_synced_at":"2025-05-14T08:14:20.393Z","repository":{"id":42659404,"uuid":"257739552","full_name":"webarkit/ARnft","owner":"webarkit","description":"A small javascript library for WebAR with NFT","archived":false,"fork":false,"pushed_at":"2025-03-22T16:10:58.000Z","size":113968,"stargazers_count":223,"open_issues_count":41,"forks_count":53,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-05-09T22:22:40.262Z","etag":null,"topics":["arnft","artoolkit5","augmentedreality","es6","hacktoberfest","javascript","jsartoolkit","jsartoolkitnft","markerless","naturalfeaturetracking","nft","webar"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/webarkit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"open_collective":"arnft"}},"created_at":"2020-04-21T23:26:42.000Z","updated_at":"2025-04-24T17:19:33.000Z","dependencies_parsed_at":"2023-09-23T14:36:08.406Z","dependency_job_id":"5ac78e19-6a3b-428f-94ee-dc9116a32f9e","html_url":"https://github.com/webarkit/ARnft","commit_stats":{"total_commits":438,"total_committers":9,"mean_commits":"48.666666666666664","dds":0.5114155251141552,"last_synced_commit":"bb68831d109d2e6efe4d94b77aa01a96d6892dff"},"previous_names":[],"tags_count":43,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webarkit%2FARnft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webarkit%2FARnft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webarkit%2FARnft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webarkit%2FARnft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webarkit","download_url":"https://codeload.github.com/webarkit/ARnft/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254101541,"owners_count":22014909,"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","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":["arnft","artoolkit5","augmentedreality","es6","hacktoberfest","javascript","jsartoolkit","jsartoolkitnft","markerless","naturalfeaturetracking","nft","webar"],"created_at":"2025-05-14T08:14:16.299Z","updated_at":"2025-05-14T08:14:20.383Z","avatar_url":"https://github.com/webarkit.png","language":"TypeScript","readme":"![github releases](https://flat.badgen.net/github/release/webarkit/ARnft)\n![github stars](https://flat.badgen.net/github/stars/webarkit/ARnft)\n![github forks](https://flat.badgen.net/github/forks/webarkit/ARnft)\n![npm package version](https://flat.badgen.net/npm/v/@webarkit/ar-nft)\n![Dependabot Badge](https://flat.badgen.net/dependabot/thepracticaldev/dev.to?icon=dependabot)\n[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)\n[![CI](https://github.com/webarkit/ARnft/actions/workflows/CI.yml/badge.svg)](https://github.com/webarkit/ARnft/actions/workflows/CI.yml)\n[![Build ARnft CI](https://github.com/webarkit/ARnft/actions/workflows/build.yml/badge.svg)](https://github.com/webarkit/ARnft/actions/workflows/main.yml)\n![twitter](https://flat.badgen.net/badge/twitter/WebarkitO/follow)\n\n# 🖼️ ARnft - WebAR with NFT\n\n\u003cimg alt=\"ARnft official logo\" src=\"examples/Data/arNFT-logo.gif\" width=\"250px\"/\u003e\n\nA small javascript library to develop WebAR apps. It is based on [jsartoolkitNFT](https://github.com/webarkit/jsartoolkitNFT) a lighter version of jsartoolkit5 only with **NFT** markerless technology. It uses [ARnft-threejs](https://github.com/webarkit/ARnft-threejs) for the rendering part.\n\n## 🚀 Start using it !\n\n:one: \u0026nbsp; Clone the repository:\n\n`git clone https://github.com/webarkit/ARnft.git`\n\n:two: \u0026nbsp; Install the npm packages with yarn:\n\n`yarn install`\n\nor with npm:\n\n`npm install`\n\n:three: \u0026nbsp; Run the node server:\n\n`npx http-server`\n\n:four: \u0026nbsp; Go to the examples:\n\nhttp://localhost:8000/examples/arNFT_example.html\n\n:five: \u0026nbsp; Point your device 📱 to the pinball image 👇 a red cube will appear !\n\n\u003cimg alt=\"pinball image\" src= https://raw.githubusercontent.com/artoolkitx/artoolkit5/master/doc/Marker%20images/pinball.jpg width=\"250\"/\u003e\n\n## 🏎️ SIMD Feature\n\nThe ARnft library now includes support for SIMD (Single Instruction, Multiple Data) to enhance performance by parallelizing data processing tasks. This feature is particularly useful for applications requiring high computational power, such as augmented reality.\n\nTo see the SIMD feature in action, you can try the `arNFT_simd_example.html` example:\n\nhttp://localhost:8000/examples/arNFT_example.simd.html\n\n## 📦 Usage\n\nDownload the zipped dist lib package from the releases page: [webarkit/ARnft/releases](https://github.com/webarkit/ARnft/releases)\nand import it as a module:\n\n```html\n\u003cscript type=\"importmap\"\u003e\n    {\n        \"imports\": {\n            \"three\": \"./js/third_party/three.js/three.module.min.js\",\n            \"arnft-threejs\": \"./js/ARnftThreejs.module.js\",\n            \"arnft\": \"./../dist/ARnft.mjs\"\n        }\n    }\n\u003c/script\u003e\n\n\u003cscript type=\"module\"\u003e\n    import * as THREE from \"three\";\n    import arnft from \"arnft\";\n    const { ARnft } = arnft;\n    import ARnftThreejs from \"arnft-threejs\";\n    const { SceneRendererTJS, NFTaddTJS } = ARnftThreejs;\n\n    // Follow code for rendering ect. see the examples.\n```\n\nor you can use raw.githack services (for development):\n\n```html\n\u003cscript type=\"importmap\"\u003e\n    {\n        \"imports\": {\n            \"three\": \"https://cdn.jsdelivr.net/npm/three@\u003cversion\u003e/build/three.module.min.js\",\n            \"arnft-threejs\": \"https://raw.githack.com/webarkit/ARnft-threejs/master/dist/ARnftThreejs.module.js\",\n            \"arnft\": \"https://raw.githack.com/webarkit/ARnft/master/dist/ARnft.mjs\"\n        }\n    }\n\u003c/script\u003e\n\n\u003cscript type=\"module\"\u003e\n// as the above code snippet\n```\n\nor raw.cdn (for production, you need to add the hash):\n\n```\n// As the examples above import three.js, Arnft-threejs and Arnft in an importmap\n\"arnft\": \"https://rawcdn.githack.com/webarkit/ARnft/\u003chash\u003e/dist/ARnft.js\"\n```\n\nor if you want to import as a module with npm:\n\n```\n// In your package.json:\n\"devDependencies\": {\n    \"@webarkit/ar-nft\": \"^0.14.11\"\n},\n```\n```javascript\n// Then in your .ts or .js file\nimport { ARnft } from \"@webarkit/ar-nft\";\n```\n\n## 🧪 Examples\n\nTest the examples in the `/examples` folder:\n\n- `arNFT_autoupdate_example.html` Example with the autoupdate routine.\n- `arNFT_container_example.html` Example with an alternative container.\n- `arNFT_event_example.html` Example with objVisibility and eventListener.\n- `arNFT_example.html` The simplest example displaying a red cube.\n- `arNFT_simd_example.html` Example with SIMD feature.\n- `arNFT_gltf_brave_robot_example.html` More advanced example with a gltf model and threejs events.\n- `arNFT_gltf_example.html` Example showing a gltf model (Duck).\n- `arNFT_gltf_flamingo_example.html` Example showing an animated gltf model (Flamingo).\n- `arNFT_image_example.html` Example showing an image.\n- `arNFT_initialize_raw_example.html` Example using the custom initialize function for the CameraRenderer (video).\n- `arNFT_multi_example.html` Example with multi NFT markers.\n- `arNFT_multi_dispose_example.html` Example with multi NFT markers and disposing worker.\n- `arNFT_multi_one_worker_example.html` Example with multi NFT markers in one Worker.\n- `arNFT_video_example.html` Example showing a video.\n- `arNFT_zft_example.html` Example showing a simple cube, loading a .zft file.\n\nYou can try also a live example with React at this link: [kalwalt.github.io/ARnft-ES6-react/](https://kalwalt.github.io/ARnft-ES6-react/)\n\n## 💰 Donate\nDonate to **ARnft** ![opencollective](https://flat.badgen.net/badge/icon/opencollective?icon=opencollective\u0026label) ![backers](https://flat.badgen.net/opencollective/backers/arnft)\n\n## 📚 Documentation\n\nYou can build the docs with this command:\n`yarn docs`\nThen run a live server and go to the docs' folder.\n\n## 🌟 Features\n\n- **NFT** (**N**atural **F**eature **T**racking) Markers, read my article: [NFT natural feature tracking with jsartoolkit5](https://www.kalwaltart.com/blog/2020/01/21/nft-natural-feature-tracking-with-jsartoolkit5/)\n- **ZFT** compressed **NFT** markers with .zft extension, with faster loading time.\n- **SIMD** (Single Instruction, Multiple Data) support for enhanced performance.\n- **ES6** standard. You can install it as a npm package and use it as a module (experimental). Install it with npm:\n\n```\nnpm i @webarkit/ar-nft\n```\n\nor with yarn:\n\n```\nyarn add @webarkit/ar-nft\n```\n\n- Configuration data in an external .json file.\n\n- Filtering of the matrix with the **O**ne**E**uro**F**ilter.\n\n## 🛠️ Format the code with Prettier\nWe are using [Prettier](https://prettier.io/) as code formatter. You only need to run `yarn format` to write the formatted code with Prettier. If you want to check if the code is well formatted run instead: `yarn format-check`\n\n## 🔧 Build\nIf you make changes to the code, run these commands to build the distribution library, install all the dependencies with:\n```\nyarn --include=dev i\n```\nFor a development build, that is the code will be rebuilt for every change, run:\n```\nyarn dev-ts\n```\nInstead for a production build, with more optimizations in the code and smaller size, run:\n```\nyarn build-ts\n```","funding_links":["https://opencollective.com/arnft"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebarkit%2Farnft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebarkit%2Farnft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebarkit%2Farnft/lists"}