Filaments stores each piece's trait hash in contract storage (SSTORE), and hashToHTML() builds the p5.js sketch around it as an HTML page. That page loads p5.js from an external CDN, so rendering depends on that external script; the standard tokenURI() points image and animation_url at copies on Arweave.