A CAD-Blockchain Integration Strategy for Distributed Validated Digital Design

A paper presented at the 2018 eCAADe conference

T.Dounas, D.Lombardi
We present a proof of concept implementation of an integration strategy for connecting CAD with Blockchain. We explain the components of most blockchains and the value they bring to the built environment ecosystem, the potential impact a complete integration might have and we demonstrate the first two of four levels of integration we have identified between CAD and blockchain technologies. For the purposes of the paper we use Rhino / Grasshopper and Ethereum as the two components of integration.

Blockchain technologies have emerged since the appearance of Bitcoin [Nakamoto 2009] as a key digital infrastructure powering various functions within the economy [Kinnaird et al 2017] and cities [Coyne et al 2017]. Beyond the hype, reports have described the potential of Blockchain [BRE report year?] to profoundly affect the digital infrastructure [Kinnaird et al 2017] that runs the built environment but also the digital tools that we currently use to design architecture. We present the first connection of a CAD system with a Blockchain on two levels of integration, along with the strategic description of two other possible levels with current technology. Connecting CAD and BIM systems with a blockchain can have a profound effect on the design of cities but also on their operations [Lombardi et al 2018, Tamke et al 2014]. Previous efforts in distributed, interconnected systems have gone so far as creating protocols for plat-
form agnostic communication between 3d software over the internet [Hnidek, J 2011] without though connecting CAD and 3d modelers with other programmes and protocols. We believe that blockchain has the potential to unravel a lot of the locked potential in interconnecting CAD and BIM tools with economic life, and in extension directly with the physical world.

The paper presents a first attempt at connecting blockchains with a cad system. While the connection is not at the level of a full BIM system, but rather remains on the conceptual level, the rationale of implementing this drives a desire to advance the state of the art in CAD and BIM integration with various other digital infrastructures but also the aspects of the physical world.

To explain the potential of Blockchain and the impact of integration between CAD and Blockchain some definitions are needed first. A blockchain is a distributed database which is built out of blocks of data. Various computer nodes on a network share the database and have the task of creating new blocks. The blocks contain an index number, a timestamp, data that we want to store in them, usually a monetary transaction in the case of cryptocurrencies, and a crypto-hash of the previous block. The whole block then gets cryptographically ‘hashed’, i.e encrypting the data it has and the previous block’s hash, into a new hash of specific length. Within this mechanism, a chain is created between blocks hence the name ‘blockchain’. In parallel Nodes listen for transactions between other nodes, and when a transaction is to take place, they will verify the validity of the transaction by collectively checking the record or ledgers of the blockchains that they have stored. This is a validation process that takes place in most blockchain technologies- the node(s) which validates a transaction first is rewarded by the system with a small amount of a cryptocurrency. Once this cryptocurrency gets generated, its block is added to the blockchain by the listening nodes, which then turn again towards validating the next block. That process is called mining and is hugely energy expensive [Lombardi et al 2018]. Certain blockchains, like Ethereum, have also additional features that allow for true integration with a wider digital infrastructure. Smart Contracts are contracts that are executed within the blockchain autonomously, without human intervention when certain events take place- dApps, or decentralized applications are applications that run on the Blockchain, making good use of smart contracts. A public blockchain can run on a public open network like the internet or a private blockchain where the nodes are cryptographically identified first before they participate. In the public blockchain, the proof-of-work that the original bitcoin paper [Nakamoto2009] describes solves the Byzantine-Generals problem that former distributed
systems could not solve. For example, the verce protocol running on Blender, had to identify a master and slave nodes to be able to synchronize and avoid corruption of 3d data due to the nodes being in an asynchronous state. Still, in terms of connecting external applications with the blockchain, in case like the ones developed in this paper, one needs to introduce the concept of an ‘Oracle’, i.e a node which does not participate directly in the resolution and validation of blocks in the chain, but does provide data for inclusion in the blockchain, more so when these are used for executing or triggering a smart contract. This introduces again the problem of identity verification y cryptographic means, but this is out of the scope of this paper.

figure 1
Figure 1: Diagram of a blockchain

Less than twenty years ago bank transfers were the only way to send money to someone else located in a different town or country and the whole system was based on a trustworthy process that involved four subjects only: the sender, the bank that sent the money, the bank that received the money and the receiver itself. Since the Internet has been made available to everyone with a computer and a phone line (and nowadays the two things often match in one device only), our habits started a rapid combination of changing and now it seems to be unstoppable. Websites and apps like ebay, Paypal, payzone, stripe created a new system in which banks are almost no more necessary for building direct relations between the sender and the receiver. Further, even if their first mission is not to exchange money, companies like AirBNB and Uber have started a process in which centralized services like hotels and taxis become available in a distributed manner and are validated through a system of rates defined by user demand and feedbacks. In this distributed economy context the frame changes from one in which the quality of the provided services and transactions is validated by abstract entities to one in which final users are in charge to evaluate the nature of goods and services and either reward the companies or dis- card them from their range of choices. Those dig- ital platforms can be seen as early digital coopera- tives with incredibly high numbers of people who use them thanks to new paradigms of trust [Coyne et al 2017]. The trust is then based on checking com- ments and feedback from other users rather than on the validation coming from an official document is– sued by a bank. But ratings, feedbacks and com- ments are only the tip of the iceberg. Below the sur- face, encrypting algorithms control an endless num- ber of transactions and contracts that are stipulated everyday between digital-based companies and final users. Further, because of the digital nature of both companies and user accounts, a process of decen- tralisation is now almost complete between provider, user and financial intermediator that do not have to be in the same place and in the same time to dis- cuss and finalize the exchange of goods/services for money. Within this radical change on how digital in- frastructures enable maximum flexibility of owner- ship and use, the built environment in contrast re- mains a conservative fixture.

The built environment is now facing the effects of the changes produced at different levels by Infor- mation Technology. The ability of IT of being encap- sulated into small components and objects, made by sensors and micro-chips, led to first applications that aimed to improve our daily quality life through the interaction between us and the appliances that pop- ulate our houses.

A second most complicated step is now transforming the way in which inflexible physical entities like buildings and cities are actually designed and

built. Building Information Modelling is accepted as the standard for designing buildings in which all the components are defined thought all their life, from production to installation, maintenance and dismissal. Different BIM levels are recognised accord- ing to the UK government [Harty et al 2016]: from the Level 0, simply based on CAD and with no in- teraction and cooperation between designers to the Level 2, currently in use and characterised by “an information exchange process which is specific to that project and coordinated between various sys- tems and project participants” [BimPortal] in which all those involved in the design process share the same data and work in parallel. In this level-based system the next step is defined as Level 3 BIM and presents a wide range of action points in which we find the creation of new kinds of contractual frame- works (i.e. performance-based contracts, smart contracts), data-validation processes and managing fast transactions between builders and clients.

To realize the expectation of the BIM Level 3 it appears then necessary to rely on some other form of technology who allows to track the information and secure them via encrypting algorithms. The blockchain can then represent a tool to be inte- grated with BIM and able to provide solutions for the above mentioned instances. Distributed Ledgers (DL) such as Ethereum can support the request of smart contracts based on the evaluation of perfor- mances against specific criteria. An “if/then” state- ment could be implemented to help reducing the timing required for delivering payments as well as simplifying the administration of financial aspects re- lated to the construction stage. At the same time, the DL will ensure the security of the data through automated validation and predictable cryptographic implementations as well as the ownership of each digital components.


We have identified four levels of connection and in- tegration between CAD/BIM and a blockchain. The basic one integrates a simple blockchain into the CAD/BIM software. The second level of the in- tegration, which is straightforward using current technology, connects the CAD/BIM client with the blockchain, in our case a test network built on Ethereum. The third and fourth cases, involve the in- clusion of a computational node of Ethereum within the computational construct of the CAD/BIM soft- ware, while the fourth level integration involves the running of the whole database of the CAD/BIM soft- ware directly on the Ethereum Blockchain, i.e an im- plementation of a CAD/BIM dApp on Ethereum.

We chose Rhinoceros/Grasshopper/gHowl for our implementation. However the same can be shown for REVIT or even Autocad, or any CAD pack- age that incorporates a computer language inter- preter and the possibility to communicate over a computer network.

First Level of Integration

The first level of integration incorporates a basic blockchain written in python within the environ- ment of Grasshopper (Gh) on Rhinoceros. A basic blockchain ensues the public network capacity of a normal blockchain and records information in a series of blocks that are cryptographically hashed. Figure 2 & 3

Figure 2: Four levels of CAD-Blockchain Integration
Figure 3: Level One CAD-Blockchain Integration

In this implementation, we have executed a simple command and copied a circle from one position to another. These have then been referenced inside Grasshopper, analysed into control points, which in turn have been converted into mathemat- ical sets. From these sets, we can calculate the difference between the coordinates of the two groups of control points. This difference is then fed into the python blockchain. The blockchain runs autonomously within Grasshopper and no connections to the outside world are created. It comprises of five elements, a definition of a block, a blockchain, a hashing algorithm, the first ‘genesis’ block and the executive function of the code. Another input into the blockchain is the number of blocks to be gener- ated. This is done for simplicity in the proof of con- cept. The full implementation would connect each

block generated with the actions of the computa- tional designer, one block generated for each action. The difference is fed into the variable ‘diff’ while a simple string is fed into the first block of the chain. The blockchain then encrypts with a hash the first string, produces the first genesis block and continues by producing the rest of the blocks incorporating in each block the string that represents the difference between the original and the copied circle.

This is a basic implementation of the CAD / Blockchain integration. Due to its simplicity there is no distributed, and thus trust-less verification, of the contents of the blocks. The implementation points towards the importance of recording difference within the software, from a state to another. Similarly, Grasshopper’s beginnings were the creation of an explicit modelling history, which fits conceptually with the understanding that this first implementation of blockchain creates an immutable record, capturing the history of a difference between an original and a copy.

Second level of integration:

We then present a proof-of-concept optimisation algorithm that attempts to find the highest point on a curved surface. The algorithm then transmits the optimisation value as a percentage over the internet where a smart contract on Ethereum is listening, so that it pays in issued tokens on the Ethereum blockchain as soon as they receive a value above the required minimum threshold.


pragma solidity ^0.4.21;

contract CAD {

    uint public value;

    address public seller;

    address public buyer;

    enum State { Created, Locked, Inactive }

    State public state;

        function CAD() public payable {

        seller = msg.sender;

        value = msg.value / 2;

        require((2 * value) == msg.value);


    modifier condition(bool _condition) {




    modifier onlyBuyer() {

        require(msg.sender == buyer);



    modifier onlySeller() {

        require(msg.sender == seller);



    modifier inState(State _state) {

        require(state == _state);



    event Aborted();

    event CADConfirmed();

    event SolutionAccepted();

        //abort function truncated

    function confirmCAD()



        condition(msg.value == (2 * value))



        emit CADConfirmed();

        buyer = msg.sender;

        state = State.Locked;


    function confirmCAD()





        emit SolutionAccepted();

        state = State.Inactive;





To determine that, the smart contract on Ethereum is set up to receive the optimization values over the web, with the identity of the computational designer received simultaneously on another part of the Smart Contract. Essentially in this scenario the CAD system Rhino/Grasshopper acts as an ‘Oracle’, a node external to the Ethereum blockchain providing information to the Blockchain. Within our implementation identification is not required as we are executing the contract in a private blockchain. In the public Ethereum blockchain identification would be needed on the Rhino/Grasshopper side, which means that each CAD node would need its own ETH Address on the network, which would be closer to the third level of implementation.

The technical implementation of the second level follows as such (also see figures 4, 5):

Figure 4: Second level of Integration- Grasshopper-GHowl connection and optimisation problem
Figure 5: Technical Implementation of the second level of integration

Computational designer registers her identity with first aspect of the smart contract. -say port 1111 at address Her identity is represented by an ETH address 0xC2EeD2f6717a895090601fAc01F501201d3E1490. Then on CAD: Rhino/Grasshopper (acting as Oracle) the computational designer solves the problem us- ing Gh, and communicates with GHowl on port 2222 to a webpage hosted by web3.js. The server passes the value to the Oracle service, for example realitykeys.com, or Oraclize. This in turn passes the value to the smart contract which on Ethereum checks for compliance, then executes a monetary transaction, sending an amount of ETH or tokens to the address the computational designer registered with. The contract then closes or regenerates accordingly.

Third and Fourth Level of Integration

In a future third level of integration the system would involve the building of an Ethereum node inside Gh. This would take care of communicating and registering the Gh definition with an Address on the Ethereum network. Then as a sequence, the node could record the differences between subsequent versions of the file, encoding them as blocks. This would enable the production for example of an immutable record. The fourth level of integra- tion would involve running a complete application of CAD/BIM on the Blockchain directly, hence trans- forming CAD/BIM into a decentralised application.


The impact had by digitalization and the Internet on daily life is currently affecting the way in which human activities are both conceived and organized. There do exist Architecture offices which are already operating as decentralized autonomous organizations who shares ideas and develop products before selling them in a digital market. This can take place from the second level of integration and above, or it can take place by just creating an independent dApp that triggers payments every time a digital CAD asset is used. Examples of community of architects who share ideas or take part to on-line competitions an- nounced directly by clients are already a reality that exists thanks to the fastest way of communication we have ever had, the Internet. Indeed, being immersed within an invisible network which carries every kind of information and connects devices that allow people to develop and share both ideas and business from all over the world, is putting into discussion many of the traditional concepts of collaboration, authorship and monetization. Within these concepts, a public blockchain seems to be an infrastructure that can sustain and govern the next level of authorship and collaboration on a trustless level, i.e a plateau where smart contracts will guarantee execution. The need of a platform and a system who can assure the correctness of the design transaction between the designer and the client is far more evident when most of the contacts and documents between those two entities have no more a physical aspect, and are readily enforceable using the Blockchain, with no possibility for dilution, skewed information or uncertainty on who edited which file or aspect of a CAD or BIM model. Current digital technologies such as BIM and Blockchain can provide together a secure way for designers to engage with the both a new enlarged market and building requirements without losing the control of their projects [Carpo, M, 2017].


This paper presented an integration strategy be- tween CAD and blockchain technology in an algo- rithmic platform. The integration was experimentaly explored at two different levels: first level to test the feasibility of recording differences between two sets of cad objects and a second one in which the differences are recorded, evaluated and sent to a blockchain platform as Ethereum. Both have been conceived as starting points for the following step in which Ethereum nodes will be implemented into the algo- rithm allowing the recording of immutable strings of blocks. On the integration level, open APIs and interoperability capacities in certain software will prove crucial for complete integration.

Further questions to be tackled will concern the feasibility of writing codes who are able to run on private and public networks as well as moving from CAD to BIM systems. The first implies the necessity of testing them across countries and checking potential issues due to firewalls and local internet limitations. The latter will require the implementation of further BIM levels as defined by standards specifications and integrate a cryptocurrency payment method, along with other potential financial instruments.


Afsari, K, Eastman, C.M and Shelden, D.R 2016 ’Data Transmission Opportunities for Collaborative Cloud – Based Building Information Modeling’, SIGraDi 2016 [Proceedings of the 20th Conference of the Iberoamer- ican Society of Digital Graphics – ISBN: 978-956-7051- 86-1], Argentina, Buenos Aires , pp. pp.907-913

Carpo, M 2017, the Second digital turn- Design beyond in- teligence, MIT Press, Cambridge Mass.

Ethereum Consortium, E (eds) 2014, Ethereum White Paper, https://github.com/ethereum/wiki/wiki/White- Paper as revised / accessed May 2018, Ethereum con- sortium

Harty, J, Kouider, T and Patterson, G 2016, Getting to grips with BIM, Routlege, London and New York

Hnidek, J 2011 ’Network Protocols for Applications of Shared Virtual Reality’, Communications proceedings of 19th International Conference on Computer Graph- ics, Visualization and Computer Vision, ISBN 978-80- 86943-82-4, Plzen, pp. pp. 31-38

Kinnaird, C, Geipel, M and Bew, M 2017, Blockchain Technology, How the Inventions Behind Bitcoin are En- abling a Network of Trust for the Built Environment, Arup, London

Lombardi, D, Dounas, T, Zhang, CK, Wu, H and Yang, C 2018 ’CREATING NEW CITIES – CELLULAR AUTOMATA & SOCIAL CONDENSERS’, Proceedings of CAADRIA 2018, Short Papers, Beijing

Tamke, M, Jensen, M, Beetz, J, Krijnen, T and Fjeld Edvard- sen, D 2014 ’Building Information Deduced – State and potentials for Information query in Building In- formationModelling’,inThompson,EmineMine(ed.), Fusion – Proceedings of the 32nd eCAADe Conference, Newcastle upon Tyne, England, UK, 10-12 Septem- ber 2014, pp. 375-384, pp. pp. 375-384

Tedeschi, A 2014, AAD_ Algorithms-Aided Design, Le Penseur

[1] http://www.food4rhino.com/app/ghowl
[2] https://bimportal.scottishfuturestrust.org.uk/page/s tandards-level-2

Leave a Reply

Your email address will not be published. Required fields are marked *