An open API service indexing awesome lists of open source software.

https://github.com/webarkit/nft-marker-creator-app

Improved NFT-Marker-Creator app to create your NFT markers for all compatible WebAR projects.
https://github.com/webarkit/nft-marker-creator-app

image-tracking jsartoolkit-nft natural-feature-tracking nft webar webarkit webarkitlib

Last synced: about 1 year ago
JSON representation

Improved NFT-Marker-Creator app to create your NFT markers for all compatible WebAR projects.

Awesome Lists containing this project

README

          

![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=
-max_thresh=
-min_thresh=
-leveli=n
(n is an integer in range 0 (few) to 3 (many). Default 1.'
-feature_density=
-dpi=f:
Override embedded JPEG DPI value.
-max_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.

```js

import nftMC from '../build/NFTMarkerCreator_ES6_wasm.js';
const mc = await nftMC();

```

## 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/`

## 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.