I describe a plugin that performs Discounted Cash Flow Analysis on project ideas. The goal of this plugin is to provide slightly more advanced financial analysis and calculations at the design stage beyond just calculating the area and multiplying with the construction cost.
When I first started with geodesign, design and finance seemed two different worlds. In the most simple form of financial analysis, the area of a project is multiplied by a per hectare or per acre construction cost. This type of simplistic analysis does not work in the real world and even though everyone understands this, it is very prevalent in design practice especially in the early stages. There are no simple tools to perform slightly sophisticated financial analysis on an idea.
Generally design and finance work in silos even though their work is intricately connected. One way to improve the financial capability of a non-finance professional is to provide simple tools to gently introduce financial analysis. A good technic to assess the “fair value” of a project or idea is the Discounted Cash Flow Analysis. I am not going to get into the details of it but it is quite straight forward to understand. I set about to build a plugin with the goal to provide slightly more sophisticated financial analysis for individual project ideas in Geodesign Hub. Of course it cannot replace professional financial assessments but it can be used to educate users on how implementation can work and how decisions are made in the real world away from simplistic calculations.
Demo and Screenshot
You can play with the plugin by clicking on the link here and a brief explanation is below
- The Input diagram, it is a idea that the designer has that needs to be built or constructed.
- The name, size and estimated construction cost and the geometry. All of these are downloaded using the Geodesign Hub API, in this case, it is a 270 hectare development.
- At a estimated EUR 100k / hectare the cost of construction is estimated by multiplying the area of the project with the cost of construction per hectare. This can be changed to another if you think that it can done cheaper or more expensively.
- Estimate the annual income for your investment.
- Estimate the annual growth as a percentage. e.g. if you choose 2% and annual income of 100,000 then on year 1 you will earn 100,000, year 2 will be 102,000, year 3 your income will be 104,040 etc.
- Weighted Annual Cost of Capital (WACC): This is the cost of money or your opportunity cost. A way to think about this is if you did not invest in this project, and invested in say the stock market how much return you think you can get.
- 8. 9. 10. Once the “Compute NPV” button is pressed, this shows the total expected cash flow and the chart of Actual and Discounted Cash flow and most importantly the Net Present Value. If the NPV is positive, it could mean that given your model parameters, this investment is overvalued and it may not be a good investment given the parameters. On the other hand, if the NPV is negative, then it may be a good investment.
As with a lot of things finance related, there are a number of limitations of the technique. A good blog post about the limitations is here. But this can provide a good understanding of how prospective investors think and what drives their decision.
You can use the API provided by Geodesign Hub to build your plugins and models that integrate directly with the workflow. In fact, you can build paid plugins and microservices and get paid for access. I will share more details about the Store and paid plugins shortly. All of this is open source and you can see it in action on Geodesign Hub and also see the code on the Github repository.
This article is a part of a series that I call as “Geodesign Advances” where I talk about how Geodesign Hub uses state-of-the-art computing technologies to help the process of collaborative design. In this article, I will describe how we implement machine learning algorithms to help people who design to collaborate and interact with each other.
Geodesign with Geodesign Hub
Geodesign Hub is a platform for collaborative designing. With Geodesign Hub, a number of people can simulteanously design and negotiate complex geo-planning problems. We usually have anywhere from 15-60 people from different disciplines and professional specialities and even ordinary citizens working simultaenously on a project. A project can be anything from designing a city, making a evacuation plan, preparing for dramatic change in a neighbourhood etc. Geodesign Hub is easy to understand and get started, we usually have been able to train people on the capabilities within 30 minutes.
Designing with Diagrams
Geodesign Hub works especially well on early stages of a design problem and is used with a group of people doing the design activity togther. To begin with, people get together and draw simple diagrams on a map to communicate their idea for improving the current state. Below is a diagram drawn on the tool. It describes a Marsh Restoration project. People add a lot of diagrams and usually a project has many diagrams: usually more than 200 some shown in the picture below.
These diagrams are drawn indiviually by different people in real time. We use the power of modern computing and machine learning tools to aid people when they draw diagrams.
What is machine learning?
Machine Learning, Aritificial Intelligence and Deep Learning are used interchangably now-a-days. Bascially, Arthur Samuel described it as: “the field of study that gives computers the ability to learn without being explicitly programmed.”
Machine learning is very prevenlant and used in a number of things that you use everyday. For e.g. when Netflix makes movie suggestions or Gmail filters spam or Amazon recommends similar products, they are using machine learning algorithms that get better over time as they analyze more data.
I dont want to get too much in to Machine learning specifics but basically machine learning algorithms fall into two main categories (there are others as well):
- Supervised Learning Algorithms
- Unsupervised Learning Algorithms
In supervised learning, the “right answer” is given by the algorithm based on previous data that it analyzes: i.e. a algorithm predicting a sale price for a house; or if a email is spam or not.
In unsupervised learning, there is no “training data”. Data is fed into the algorithm and the algorithm then analyzes the data to find patterns. This technique is used commonly for example in Google news, when different news articles are grouped together under the same title. The alogrithm understands that all the articles are talking about the same event without it having any understanding of the event itself. This technique has other applicaitons: it can also be used to segment customers in marketing.
Brief aside: I am currently enrolled in a the brilliant Machine Learning Course in Coursera by Prof. Andrew Ng. If you are interested in this topic and want to learn more about this, I would highly recommend this course. I learnt all of the above from there.
How can machine learning help geodesign?
At Geodesign Hub we use both supervised and unsupervised learning algorithms to help in the design process, I will write about how we use supservised learning in another article but for this one, I will focus on how we use unsupervised machine learning to help designers.
As I described in the beginning of the article, the participants in a project are drawing different design ideas and interventions to “improve” the problem that a area is facing. Frequently, given the diverse participants, many people have different ideas for the same place: someone might say a empty lot should be converted into a public park, others may think it is better to have parking, while others may think that it is better to build mixed use spaces there. This is what people are drawing in diagrams.
Show other ideas people have in realtime
When you have so many diagrams, it can be hard to figure out what is the content of every diagram. If I am working on the downtown area, I am only concerned about what other people think should happen in the downtown and I should be shown only the diagrams (among the 200+) that are relevant to downtown. We use supervised learning to show diagrams in a area in realtime. This is shown in the video below.
We start in a broad study area and as I zoom and pan to the area of my interest, the “nearby diagrams” is constantly updated. The algorithm understands where you are in the study area and then shows ideas that other people have for this place so you know beforehand the ideas and encourages you to discuss your idea with the others to see if both can work.
Observe as I pan the map, “diagrams nearby” changes and updates. What is going on in the backend is that the platform is running a machine learning algorithm to figure out where you are on a map and it shows relevant diagrams nearby having analyzed in realtime all the 200+ diagrams. This is kind of like Netflix recommendations or Amazon related products except you are shown other design ideas. Now that we know that there are others who have suggestions for this place, I can go and discuss their ideas and hopefully accomodate them in my plan.
Facilitating communication and negotiation
I just demonstrated how we use unsupervised learning to analyze existing diagrams drawn in a place and then show them so that the person drawing a new one knows what idaes others had. This enables smooth negotiation and more importantly better understanding of what ideas others have for a place. There are many things that I can discuss reagrding the technical aspects of this, let me know if you would like me to show that as well. All of this state of the art technology is available for free in Geodesign Hub.
In the next article in the series I will show how we use supervised machine learning to help infer the intent of a diagram.
In this article, I will describe a API for the geodesign workflow, the goals and the recent progresses we have made at Geodesign Hub to achieve this.
If all you have is a hammer, everything looks like a nail.
In most creative and professional fields, this quote is relevent. I have come across many professionals whose thinking is shaped by the tools being used. In some cases, the tool and its capabilities guides the solution. But how would design and planning look like if it were agnostic to the tools being used? What sort of level of abstractions would such a design process require?
Geodesign is a process of design. I have written earlier about the differences between geodesign and “traditional” design. I built Geodesign Hub and it represents this new class of software that works quite differently from existing planning support tools. Prof. Uri Avin of the National Center for Smarth Growth describes this quite nicely in the following diagram, the right most diagram is how Geodesign Hub works.
Therefore, Geodesign Hub is essentially a workflow that enables interoperability between different models and tools seamlessly while enabling the core task of collaborative design.
This software model assumes different systems working independently of each other without a requirement or necessity to have a particular specialized software installed. Given the interdisciplinary nature of geodesign, this inclusive structure works better and enables tools and people from industries and domains that you would not traditionally associate with design and planning to participate as a equal citizen in the process of design. It works well with free or paid, old or new, simple or complex, properitary or open source software.
The Goal of Geodesign API
I have had a number of discussions with Dr. Stephen Ervin about the goal of a geodesign API. Dr. Ervin is one of pioneers in the field of geodesign and has been actively involved in the development of theoritical foundations of the discipline. The outcome of our discussions can be summarized by the following:
“The goal of a Geodesign API is to develop a extensible specification and format for describing GEODESIGN MODEL(s) – algorithmic processes that take one or maps as input and produce output in some specified format (one or map(s), number(s), data structure(s), etc.), to be incorporated within geodesign processes.“
This is quite amibitious but it also encapsulates the challenge in planning and design: the ability to describe the world from vastly different lenses in a way that other people can understand and make decisions. By using the lanugage of datastructures, maps and numbers we are ensuring broad inclusivity and agnostic to the tools where this data is created. When I set about building Geodesign Hub API, this was the goal.
The API documentation can be accessed at: https://www.geodesignhub.com/api/
The API fairly simple and straightforward structure and it enables you to take out all data and also submit data in the form of maps and numbers. They There are four main APIs:
- Projects API: Geodesign Hub works of geodesign projects, all aspects of projects can be queried using this API.
- Systems API: A project has a number of systems, these can be simple things like, hydrology, transport, housing etc. but also can be compound such has green infrastructure
- Diagrams API: Diagrams are ideas for improving the systems, this API enables you to query and add diagrams.
- Change Teams API: Once diagrams are created, they are then synthesized to create designs by teams of people. All aspects of the designs, and negotiations can be queried through this API.
And thats it!
What can be built using this API?
There are many things that can be built using a API like this:
- A tool to visualize diagrams in 3D
- A tool to take data and export as KML, DXF, Shapefiles and WFS
- A landuse allocation model
- A tool to dissect the Geodesign process to visualize the process of design.
A full list of growing plugins is here: https://www.geodesignhub.com/plugins/
All of existing models and tools should have no problems in interacting with the design process. All are welcome as equals to the design process.
In addition, in the next few months, I am focusing on building a new Financial Analysis plugin for geodesign and also pushing the envelope to link deep learning and other modern Artificial Intelligence technologies to the problem of design.
Want to learn more?
We host regular webinars and tutorials about this API, please feel free to drop me a email to pre-book a place in the next one in the next month.
In this article, I will describe a new tool I created that helps you look deeper into a geodesign process. It enables you to gain an understanding of the design method and also opens up large number of possibles for fundamental research on collaborative (geo)design methods for different scales, geographies and designers.
Design is both a verb and a noun. Geodesign is a collaborative activity, a process for creation of a design or many designs. Geodesign Hub enables a collaborative workflow where people from different professions and backgrounds get together and go through a process to create many designs and iterate on them negotiating with each other to come to a (set of) consensus designs.
In the context of geodesign, I take a contrarian stance. As a culture, we are accustomed to hearing about the “genius” in design professions. Beyond a certain scale, however, I believe that the best designs are not ones that come out of creativity of a single person but through a collaboration. The output is more than the sum of the parts. That is for any design larger than a certain scale “emergent creativity” of a team is more important than individual brilliance. Therefore, if this process of collaboration can be deconstructed then we can understand how designs are produced and move forward on identifying appropriate methods for a given scale.
There are two important considerations with respect to designing in general:
- Size and scale matter when it comes designing: strategies used to design a house are not the same as ones used to design a city.
- Design strategy or “ways of designing” differ for every group or individual based on their experience, collaboration effectiveness, type of problem etc.
As I describe above, the design method plays a crucial part for effective design interventions. In a collaborative fast paced design setting that produces a number of designs and negotiations, how can a design method be decoded? This is a hard question and needs further research. But when I started to think about this, I realized that there are no tools available to conduct this type of study.
DNA of a Design
To understand the design method, the first thing to do is to deconstruct the process of making the design: break down the components and have a way to “walk through” or navigate the design process. It is akin to someone recording the process of assembly and playing back over to see how it is made. This technique is commonly used in Chess (although usually for a single player). This kind of analysis can also be done with modern software development with version control systems like Git or Mercurial. Using these tools, changes made to a software can be tracked quite effectively to deconstruct or jump to individual states in the history. Can these techniques be applied to architecture, landscape architecture and geodesign?
The geodesign workflow as implemented in Geodesign Hub lends very nicely to this kind of analysis. Using the API, I built a open source plugin: Geodesign DNA. It reads the designs built on Geodesign Hub and then produces a detailed history for a design. In realtime as it progresses and the designer iterates on it. In addition, it produces visualization that help understand how diagrams are used by the designers as they iterate on a design and negotiate to make changes. You will need to have done a geodesign project using the workflow to get the credentials but some features.
- Visually see history of a design as it is being made (like most modern source control tools).
- Quickly see how designs change as designers add / remove new diagrams to their design.
- Visually see these changes on a grid
- Finally, see how the diagrams were added or removed as the design process progresses. The y-axis in the chart below are the diagrams and in the x-axis is chronologically ordered designs with the one on left produced first and the right most being the last. The connected lines mean that the diagram was used in consecutive designs. The longer the line, the more robust the diagram idea is for the designer and their team and they kept on picking it as they iterated on their design.
Every design project is different but the chart above is a unique finger print of the design process and the diagrams and their movement over time (shown above) as genes. Together they from the DNA of the design. Across different design exercises, A library of these can produced as shown below with each design having a different fingerprint.
The images above are like a recorded video of the design process that can be played, rewinded, skipped etc. and it opens up many possibilities for fundamental research on design methods in geodesign.
Why is this important?
By understanding the way to design in a purely digital form would mean that the most effective design method for a particular scale can be taught and analyzed with empirical data. Secondly, these methods being purely digital can be fed to machine learning / AI / Big data algorithms to construct a way to design. Imagine this: we are teaching a machine the actions a group of designers take to solve a problem.
The more I work in the field of geodesign the more I realize that tools that are available in other professions are simply unavailable for design. The DNA tool described here uses techniques very prevalent in the software world. Most engineers working in a modern software development environment are very skilled in source control management to track and manage their work. Even more broadly, Dropbox for example enables you to monitor changes to a file and revert back to a old version or un-delete a file if you delete it by mistake. So while these technologies are available broadly, they do not exist natively for people in the design fields. I wanted to see how a version control system built for the process of designing a master plan for e.g. look. Can it be done? This is my version of creating a design version analysis tool that enables you to revert, edit, merge and visualize changes to your design as it builds over time.
This is just the beginning of a large amount of work that can be done in the field. The first one that comes to mind is to take this analysis forward and instead of listing the changes to the design, it would be interesting to see what these changes mean to the design. Does the change area increase or decrease? Does it make the design “better”? etc.
In addition, I aim to build a library of these design fingerprints at different scales and projects (which we have on Geodesign hub) to explore and test the “Ways of designing” methods as described in a Framework for Geodesign, the seminal book from Prof. Carl Steinitz.
In this article, I will describe a text based dashboard for geodesign projects that I set about building. I like to work on side projects and this is one.
I too have been guilty of building crappy dashboards. It has been some what of a hobby for me to rectify this and over the past few years I read a lot of material on this. At this time, all I can do is recommend some amazing books:
- Information Visualisation: Perception for Design by Colin Ware
- Show me the Numbers by Stephen Few
- The functional art: A introduction to information graphics and visualization by Alberto Cairo
Of course there are others and I intend to write more about books that I have researched at a later time.
With that out of the way, I wanted to share a side project that uses the Geodeisgn Hub API. Meet Geodesign Hub Dashboard, a text based status dashboard for projects created on Geodesign Hub. Essentially, once you enter your API token and the project ID (Geodesign Hub works on projects) you can see a text based “dashboard” of all the project data.
I have been thinking about dashboards for some time now. During my time at UCL CASA, there were a number of researchers building city dashboards. Most notably the London dashboard. It tells you at a glance what is going on in London in near real time. This idea has been replicated in many cities e.g. Dublin, Edmonton etc. This kind of a real time feed is quite useful in administration and getting information quickly. One thing that I do not like however, is that in these dashboards is the overuse of charts and text. So I went back to the basics and decided to make a text only dashboard in the spirit of old fashioned stock tickers as shown below. Using only text and colors is very challenging and fun at the same time. Geodesign is a emerging field and by avoiding the use of charts etc. I am hoping to establish key data that are required to be monitored in a study.
What it does
Once you enter your API Token and Project ID, it queries the Geodesign Hub API to show you the project name and description, the systems, the diagrams added under each system in a grid, the change teams and the participants in the project with a link to their profile. This is shown below:
I thought this was good enough for a start. With this information, you can see at a glance most of the data in the project: the systems and the improvement ideas and also the change teams who will build a design based on these diagrams. In addition, the IDs of diagrams are displayed so it is easy to download the geometries via the API. I found this to be quite useful while developing plugins.
How I built it
This plugin utilizes the Geodesign Hub API more specifically the GET methods to get all data from the project. I then created a Node app using Express, Request and Async node modules. On the front end, I use the DataTables to build the grid, Humane JS for notifications and of course JQuery. There is one call that posts the credentials to the server that then asynchronously makes call to the API and returns once the calls have been resolved. I then packaged it up and deployed it on Heroku and to the Github repository. It is open sourced and MIT Licensed.
Technology: I learned quite a bit building this in Node. My original idea was to build a desktop app, I looked up some libraries in Python e.g Kivy, using Electron etc. however I thought a small node app might be handier. I think I can always package it as a cross platform desktop app anyway. I also found out that there were no major changes required to the API to make a app like this and it worked quite nicely.
Geodesign: I wanted to start with a very basic text based dashboard for a geodesign project administrator. One that gives a overview of the design project as it progresses. I have been able to identify key pieces of information that are necessary for this: diagrams, systems, change teams and members. I intended to add information about the generated design as well but decided to hold off since it was too much for the moment.
This type of dashboard should help in administering a project. We do a number of workshops every month and I plan to use this dashboard to the next time and also ask other administrators for their opinion and feedback. It is faster than loading all diagram data and geometries.
Technically, I intend to add more information (text only) to this. I have decided to not use maps etc. at the moment. There are a number of technical improvements that can be made: better async handling, building a Geodesign Hub node API module etc. but that is for later.
If you are interested in getting involved, contributing or providing feedback or just have more questions, please feel free to reach out. My email address is on the contact page and also am on Twitter.
In this article, I will describe a simple and fast demand based Landuse Allocation model.