UNPKG

@webarkit/nft-marker-creator-app

Version:

NFt Marker Creator based on WebARKitLib, ported thanks to Emscripten

139 lines (91 loc) 5.03 kB
![github releases](https://flat.badgen.net/github/release/webarkit/Nft-Marker-Creator-App) ![github stars](https://flat.badgen.net/github/stars/webarkit/Nft-Marker-Creator-App) ![github forks](https://flat.badgen.net/github/forks/webarkit/Nft-Marker-Creator-App) ![npm package version](https://flat.badgen.net/npm/v/@webarkit/nft-marker-creator-app) ![docker pulls](https://flat.badgen.net/docker/pulls/webarkit/nft-marker-creator-app) [![CI](https://github.com/webarkit/Nft-Marker-Creator-App/actions/workflows/CI.yml/badge.svg)](https://github.com/webarkit/Nft-Marker-Creator-App/actions/workflows/CI.yml) [![Build Nft-Marker-Creator-App](https://github.com/webarkit/Nft-Marker-Creator-App/actions/workflows/build.yml/badge.svg)](https://github.com/webarkit/Nft-Marker-Creator-App/actions/workflows/main.yml) # Nft-Marker-Creator-App This editor creates NFT markers for **WebARKitLib** and **ARTOOLKIT 5.x**, they are compatible with jsartoolkitNFT.js, jsartoolkit5.js, artoolkit5.js, ARnft.js and AR.js. A Node app is provided. Check out the wiki to learn how to generate good markers! https://github.com/Carnaux/NFT-Marker-Creator/wiki/Creating-good-markers This project is based on the original **NFT Marker Creator** by [Carnaux](https://github.com/Carnaux/NFT-Marker-Creator) but has been updated to work with the latest versions of Node and NPM, and also to work with the latest version of Emscripten, plus other improvements. ## Node app ### How to use it 1. Clone this repository. 2. Install all dependencies. First run `nvm install` it will download the node version specified in the `.nvmrc` file. You need to install nvm first if you don't have it. Then run `nvm use 18` to use the node version specified in the `.nvmrc` file. Then finally run `npm install` 3. Put the image you want inside the `src` folder. You can just paste it or you can create a folder. e.g - NFTmarkerCreatorApp Folder - NFTMarkerCreator.js - IMAGE.PNG :arrow_left: - ... or - NFTmarkerCreatorApp Folder - NFTMarkerCreator.js - FOLDER/IMAGE.PNG :arrow_left: - ... 4. Run it ``` cd src node NFTMarkerCreator.js -i PATH/TO/IMAGE ``` In the end of the process an "output" folder will be created (if it does not exist) with the marker files. You can use additional flags with the run command. e.g `node NFTMarkerCreator.js -i image.png -level=4 -min_thresh=8` -zft Flag for creating only the zft file -noConf Disable confirmation after the confidence level -Demo Creates the demo configuration -level=n (n is an integer in range 0 (few) to 4 (many). Default 2.' -sd_thresh=<sd_thresh> -max_thresh=<max_thresh> -min_thresh=<min_thresh> -leveli=n (n is an integer in range 0 (few) to 3 (many). Default 1.' -feature_density=<feature_density> -dpi=f: Override embedded JPEG DPI value. -max_dpi=<max_dpi> -min_dpi=<min_dpi> -background Run in background, i.e. as daemon detached from controlling terminal. (macOS and Linux only.) --help -h -? Display this help 5. The generated files will be on the "output" folder. 6. (OPTIONAL) You can test your marker using the demo folder! - Just run `npm run demo`. - It should open a server at: http://localhost:3000/ If you want to create the demo configuration when you create a marker, add `-Demo` to the command parameters. e.g node NFTMarkerCreator.js -i image.png -Demo ## ES6 version of the build library The library is built with Emscripten and is located in the `build` folder. It is an ES6 module and can be imported in your project. <!-- prettier-ignore --> ```js <script type="module"> import nftMC from '../build/NFTMarkerCreator_ES6_wasm.js'; const mc = await nftMC(); </script> ``` ## Create your NTS markers with our docker image First, you need docker installed in your system, if you haven't, follow the Docker engine installation [instruction](https://docs.docker.com/engine/install/) . Then inside the folder you want to run the docker image: `docker run -dit --name nft-app -v "$(pwd):/src" webarkit/nft-marker-creator-app:0.2.5 bash` With the docker container generate the NFT marker: `docker exec nft-app node ../Nft-Marker-Creator-App/src/NFTMarkerCreator.js -I /src/pinball.jpg` remember to prepend the `-I /src/<path to your image>` ## Build Build emscripten files with docker: docker run --rm -v $(pwd):/src -u $(id -u):$(id -g) -e "EMSCRIPTEN=/emsdk/upstream/emscripten" emscripten/emsdk:3.1.69 npm run build-local or better create a docker container and run the build command inside it: docker run -dit --name emscripten-nft-marker-creator-app -v $(pwd):/src emscripten/emsdk:3.1.69 bash docker exec emscripten-nft-marker-creator-app npm run build-local In VSCode you can run the `setup-docker` and `build-docker` command inside package.json. ## Planned Features - [ ] Multi threading support to speed up the creation of the markers.