SVG format has great composability, and it can combine multiple PNG images into an SVG image by smart contracts in a very efficient way. It will release all artists’ creativity by enabling PNG image composability.
The format will be like this:
<svg viewBox="0 0 1000 1000">
<image xlink:href="data:image/png;base64,', Base64.encode(bgPng), '"/>
<image xlink:href="data:image/png;base64,', Base64.encode(accessoriesPng), '"/>
</svg>
But the PNG files will consume a lot of storage, so we can either upload them to Ethereum by consuming a lot of gas or use a programmable storage L2 to store the PNG and assemble them according to the state of L1’s NFT.
We have a super cool demo here and use Web3Q as the programmable storage L2 layer.