  The Ethereum blockchain permits the development and deployment of smart
contracts which can store and execute code 'on-chain' - that is, entirely on
nodes in the blockchain's network. Smart contracts have traditionally been used
for financial purposes, but since smart contracts are Turing-complete, their
algorithmic scope is broader than any single domain. To that end, we design,
develop, and deploy a comprehensive 3D rendering engine programmed entirely in
Ethereum smart contracts, called Shackled. Shackled computes a 2D image from a
3D scene, executing every single computation on-chain, on Ethereum. To our
knowledge, Shackled is the first and only fully on-chain 3D rendering engine
for Ethereum. In this work, we 1) provide three unique datasets for the purpose
of using and benchmarking Shackled, 2) execute said benchmarks and provide
results, 3) demonstrate a potential use case of Shackled in the domain of
tokenised generative art, 4) provide a no-code user interface to Shackled, 5)
enumerate the challenges associated with programming complex algorithms in
Solidity smart contracts, and 6) outline potential directions for improving the
Shackled platform. It is our hope that this work increases the Ethereum
blockchain's native graphics processing capabilities, and that it enables
increased use of smart contracts for more complex algorithms, thus increasing
the overall richness of the Ethereum ecosystem.
