Dynamic NFTs are quite a bit more complicated, and use an iframe compressed into an html payload to prepare a final payload.
The dynamic element comes from the NFT’s internal programming, which can retrieve information from an Arweave gateway, and can change their appearance to respond to the latest contract state.
This is only one example of the implementation, but it provides the default functionality needed for interoperability with existing Atomic NFT standards.
Check this GitHub repo for more information and try it yourself!