Although our original aim was to develop an AR experience, we still managed to create some composable NFTs.
The original intent of the project was to create a geolocation augmented reality game in which users could interact with touch points, and collect NFT accessories that could be equipped to an avatar. However, our project settled on just building the NFT portion of the project. Each NFT can be one of three species of mushroom, and there are 3 different kinds of accessories you can equip to your NFT. There are also two different age levels in these NFTs that also work with the different accessories.
How it's made
The NFT smart contracts were made using the ERC721 and ERC1155 standards. The ERC721 contract standard was used to make the main NFT avatars, and the ERC1155 standard was for the accessories. I also used the ERC1155Holder contract to allow the a contract to old tokens. We used IPFS via Pinata to store all of our data, and used the common path to files to manage both the ERC1155 token metadata files, as well as the image URIs for the ERC721s. Working in Unity, we used the Chainsafe SDK to interact with the blockchain via mobile. We had some experience with ARCore, and intended to build our AR interaction with ARCore and the AR+GPS package in Unity. We began our development on Rinkeby initially, but in our final versions we worked on both Polygon and Optimism (Polygon so we could see the NFTs on Opensea and Optimism because it was incredibly cheap). To be honest, I am very disappointed in myself (the developer) for not being knowledgeable enough to complete our entire vision on time. However, this event forced me to learn how to use libraries and interfaces across contracts, and my partner created some beautiful assets that I am sure we will be able to work with in the future. Our team is looking forward to developing this concept further!