The Nonagon Cup is an ERC-721 NFT consisting of 2000 unique 3D designs for a nine-sided cup. Each design is a unique STL file. These files are generated entirely on-chain. They can be fetched from anywhere with access to the Ethereum blockchain using the HasFile interface. You can view the Nonagon Cup Smart Contract Code on Etherscan.
All Nonagon Cup files use the STL file format and include no color or surface texture. The files follow the 3D printing standard of 1 unit = 1 millimeter. The Nonagon Cup files are CC0 "No Rights Reserved", feel free to use them in any way you want.
Although the STL files are immutable, each Nonagon Cup's token metadata can always be changed by its owner. There are two ways this is achieved.
First, the smart contract allows token owners to set the URL for the metadata for their token on-chain. Use the ownerSetTokenURI method to change it. The url can point anywhere but it must return JSON matching the ERC-721 metadata standards.
Second, the Nonagon Cup website allows owners to set info for their tokens off-chain using the Owners Page. Owners can set a custom 3D wrapped cup and choose its name, description, and url. Changes done using the website require no gas but do require a signature with the wallet that owns the token.
Anyone can create 3D wrapped Nonagon Cups by uploading images into the Wrap a Nonagon Cup page. This public UV-wrapping tool runs in any recent web browser.
When owners update their Nonagon Cups the new versions appear at the top of the Files Page.