Ethereum is Turing complete, and to prove it a team has built an entire 3d rendering engine, all on-chain and based solely on smart contracts.
“You’re sort of using ethereum as your own personal graphic card, which is interesting,” says Ike Smith from Spectra Art.
Spectra Art is “a group of technologists, researchers, scientists, and innovators, hell-bent on redefining what is possible in the space of generative art.”
They’ve built Shackled which renders 3d inputs to 2d jpegs by using ethereum nodes and the ethereum virtual machine.
“Shackled is based on the work of early graphics pioneers, using technology from nearly 50 years ago (which is more suited for implementation on-chain today).
Specifically, we modify versions of Bui Tong Phuong’s [Pho75] and Jim Blinn’s [Bli77] original 3D rendering and lighting models, and use them to create a Solidity version of a simple rendering pipeline inspired by OpenGL [SA99].”
So says the team in a paper introducing this development of the first known 3d rendering engine on ethereum. They further state:
“Shackled does not require the expenditure of gas to perform rendering operations. The entire rendering operation is implemented in a read call, and thus does not write any data to the Ethereum blockchain.”
You can try it yourself and although from the above image it might look alien and complicated, Smith makes it all simple in a tutorial.
The rendering engine does only just render. It does not put the jpeg in the blockchain, but the process is interesting nonetheless.
That’s primarily because we’re introduced to json, a data programming language that most coders are familiar with, and it is through this sort of code that we’ll be talking to the smart contract.
Handcoding that json file is torture. So Smith designs what he wants on Blender, a well known 3d designing software, and then Blender itself translates the image into a json code file where things like color are given in RGB numbers of 000000 or 454545.
We then just put in the Json file and we get the image. The image itself is not on the blockchain, you can only see it on your user interface, but the blockchain nodes processed the image, and that’s the development here that you can use the nodes to do this processing.
But, since we have this json file and the nodes could process it, can’t we upload the json code on the blockchain in a tokenized smart contract, and now the image itself or the NFT is on-chain?
That’s the potential further development of this 1970s experiment that in some way brings graphics to crypto in a way the internet first moved from words to jpegs.
That would mean no more need for IPFS, no more right click save, but it wouldn’t necessarily address the question of just what does ownership of open source code that anyone can access mean exactly.
What does a token tied to some code mean? Well, since ethereum is Turing complete, it can mean whatever the coder wants, including in theory that the token grants access to some other code that has hidden art even if it is hidden in plain sight.
Developments in such experimentation therefore appear to be continuing, and although this is the application of 70s tech to new tech, it is presumably through such application that we may find both just what ethereum is capable of, and just what exactly does code ownership mean.