Observed since 20 Oct, 19:36 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Display 3D NFTs using ThreeJS to render model stored on arweave and minted on DeSo
The 3D NFT Viewer is used to display an interactive ThreeJS view of 3D models which have been minted as an NFT on the DeSo blockchain.
3D NFTs are essentials 3D model files which have been uploaded to a permanent decentralized storage network.
Metadata about the 3D model including the URL are stored in a Post transaction on the DeSo blockchain and minted to create a Non Fungible Token which can be bought and sold like any other NFT.
This repo contains front and back end code which can be used separately or in combination as in the demo.
npm install 3d-nft-viewer
In the example below nftPostHashHex is the token that identifies the individual NFT You will see this during the minting process and on any DeSo node that displays your NFT.
https://docs.deso.org/for-developers/backend/blockchain-data/basics/data-types#postentryresponse
var express = require('express');
var router = express.Router();
var D3DNFT = require('3d-nft-viewer');
router.post('/:nftPostHashHex', (req, res) => {
const nftPostHashHex = req.params.nftPostHashHex;
let nftReader = new D3DNFT.NFTReader({
nodeEndpoint: 'https://node.deso.org/api/v0/', // DeSo API Endpoint (any node can be used)
readerPublicKey: '<Your DeSo Public Key>',
modelStorageDir: 'public/models/' // public directory to serve the model files
});
nftReader.retrieveNFT(nftPostHashHex)
.then((responseJson)=>{
res.send(responseJson);
}).catch((responseJson)=>{
console.log(responseJson);
console.log('retrieveNFT error');
res.send(responseJson);
});
});
module.exports = router;
<head>
<title>3D NFT Viewer</title>
<link rel='stylesheet' href='/css/styles.css' />
</head>
<body>
<div class="container">
<img class="nft-preview" src="https://images.deso.org/746201e0167a8176c3c0ca2b141b4ed2c92442a1d16a55ab999a558e8a831a28.gif"/>
</div>
<p class="nft-viewer" data-nft="0b88277db8b3ddac74537b3f5b10897865e0fea5edcc47c86547a36fd5cf6693">Loading...</p>
<script async src="https://unpkg.com/es-module-shims@1.3.6/dist/es-module-shims.js"></script>
<script type="importmap">
{
"imports": {
"three": "https://cdn.skypack.dev/three"
}
}
</script>
<script type="module">
// Find the latest version by visiting https://cdn.skypack.dev/three.
import * as THREE from 'three';
import { OrbitControls } from 'https://unpkg.com/three@0.139.1/examples/jsm/controls/OrbitControls.js';
import { GLTFLoader } from 'https://unpkg.com/three@0.139.1/examples/jsm/loaders/GLTFLoader.js';
import { XRControllerModelFactory } from '/js/webxr/XRControllerModelFactory.js';
import { VRButton } from '/js/D3D_VRButton.js';
import { D3DNFTViewer } from '/js/3dviewer.js'
//initialize NFT viewer front end
let nftViewer = new D3DNFTViewer({
three: THREE,
GLTFLoader: GLTFLoader,
OrbitControls: OrbitControls,
XRControllerModelFactory: XRControllerModelFactory,
VRButton: VRButton,
ctrClass: 'nft-viewer', // class of div which has posthashhex attribute
nftDataAttr: 'data-nft', // Name of attribute of of div.ctrClass which contains posthashhex
nftsRoute: 'nfts', // Back end route to initialize NFTs
modelsRoute: 'models', // Back end route to load models
linkText: 'View in 3D',
previewCtrCls: 'container', //container element in which to create the preview
skyboxes: true
});
nftViewer.initNFTs();
</script>
</body>
</html>
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 1.16.6Registry latest | 29 Jun 2023 | 7 | |
| 1.16.5 | 16 Jun 2023 | 7 | |
| 1.16.4 | 15 Jun 2023 | 7 | |
| 1.16.3 | 9 Jun 2023 | 7 | |
| 1.16.2 | 1 Jun 2023 | 7 | |
| 1.16.1 | 31 May 2023 | 7 | |
| 1.16.0 | 31 May 2023 | 7 | |
| 1.15.3 | 14 Mar 2023 | 7 | |
| 1.15.2 | 14 Mar 2023 | 7 | |
| 1.15.1 | 12 Mar 2023 | 7 | |
| 1.15.0 | 6 Mar 2023 | 7 | |
| 1.14.7 | 23 Dec 2022 | 7 | |
| 1.14.6 | 22 Dec 2022 | 7 | |
| 1.14.5 | 22 Dec 2022 | 7 | |
| 1.14.4 | 22 Dec 2022 | 7 | |
| 1.14.3 | 21 Dec 2022 | 7 | |
| 1.14.2 | 20 Dec 2022 | 7 | |
| 1.14.1 | 14 Dec 2022 | 7 | |
| 1.14.0 | 13 Dec 2022 | 7 | |
| 1.13.4 | 2 Dec 2022 | 7 |
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Observed since 20 Oct, 19:36 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:1f3a1b9cfbcbddd991c9d3134b35dabc261370711905028bb5ab19cc8033fca0