
GitHub
Features:
3D object recognition
This embedded option allows to recognize the same shaped 3D objects by means of processing its 3D models in .obj format. Due to the fact, that the app hasn't had a native 3D scanner integrated yet, now you can only process 3D models made by third party scanning/modeling apps and devices. pass3d is an implementation of Grid2d algorithm, which is leveraged by the app.
Once the the model is picked up, the HASH ID creation process is getting started. All you should to do is to process 3D models one by one and save its snapshots. The app will compare the HASH IDs and detect if there is any hashes matched. In the case the object is considered to be recognized. Notice, that the same set of parameter values must be applied every time in the settings. Learn how Grid2D algorithm parameters are suppose to be used.
Just keep processing some more different scans/models of the same object until you get the stable hash, which will be highlighted. This hash is inherent to the object shape the most. It remains stable for all the future scans/models made with the same precision.
In summary:
- Get 3D models processed one by one and save its snapshots until hash match is found (the object recognized)
- Keep processing different scans/models of the same object until the stable hash is found (the HASH ID created)

3D-object-wallet creation and recovery
3DPass mobile app allows to produce crypto wallet (address + keys) out of 3D object and its recovery by means of scanning. Once HASH ID is created, the stable hash might be used as a raw seed. In order to recover all you need to do is to scan the object again. The same presision of scanning is mandatory, as well as the same Rotation bytes serving as an aditional secret. Either recognition parameters or rotation bytes must be applied in the "Settings" before the processing. Learn more about the hash strength.

Light wallet functions
"The Ledger of Things" mobile light client is designed to help you enjoy P3D transfers safely and have your balanses on the smartphone. Connect the wallet to any WSS RPC/API endpoint available to fetch some information or make a transfer.
Mainnet public RPC/API endpoints are: wss://rpc.3dpass.org; wss://rpc2.3dpass.org.

Proof of Scan verification demo
In this demo we are about to provide you with some tips of how can Proof of Scan protocol be proved to work. Using the mobile app, we are going to verify 3D object from a certain block. Then we will slightly modify the cooridnates of just one peak of the object, which doesn't cause any damage to its shape. Although, it definitelly changes the file data. Now we have two different .obj files but still the same object shape in each. Thus, we have made a potential copy of the asset this block had been mined with. However, after the processing of both, the object reveals to be the same. Meaning, the fake has been recognized and the original asset is secured.
We suggest that you watch this one-minute video before you get started:
Step 1: The object mined verification
- Open the Web wallet and download 3D object (.obj) form any block header. In this demo we are about to use the object from the block #51414. You can download it from here >>
- Open 3Dpass mobile wallet and set up the recognition parameters. Get the object processed and verify its HASH ID. Save the shapshot.
Set up Grid2d precision
Set up exactly the same parameter values as it's defined by The Ledger of Things for the object.

Set up Rotation
Look up the parent block hash and get the Rotation bytes. In this demo the parent block is #51413.

HASH ID verification
Download and unzip the object from here >> on your smartphone. Open 3Dpass mobile wallet and run the object (.obj) processing. Make sure that you have got the same HASH ID as it is exposed on the web wallet page.

Snapshot
Save the snapshot to make the app aware of the object in the future.

Step 2: The asset copy creation
In order to create a copy of the asset open the object (.obj) mined with Text editor. Pick up any vertice and modify its coordinates just slightly, so that it doesn't affect the object shape. In this demo we have changed the very first coordinate in the list. Download and compare: Original one and the Fake one. Here we used MD5 hashes to prove the difference between those two files:
MD5 (3dpass-51414.obj) = bbeb319c8c27e73298bdad936ecf524f MD5 (3dpass-51414_modified.obj) = d65277a787889e20ad1b3b4f22dadccf

It's very important to understand at this point, that any conventional blockchain platform (e.x. Ethereum), could only provide the ability to mint two different assets out of those files. And you would have never known if they are containing the same object.
Step 3: Fake object detection and its recognition
Open 3Dpass mobile wallet and run the fake object (.obj) processing. Once match is found, the fake object is becoming recognized. Due to the fact, that the object shape is still the same, the asset remains secured. You can never build new block using this fake.

By the way, you might continue this experiment and put some more serious modification on the fake object. At the point 3DPass mobile app will no longer be able to recognize it, the object modified is different enough for the current definition error to sustain its HASH ID.