Algorithmic Design Tools

Here you may find the Algorithmic Design tools for Architecture
created by our group for research and educational porpuses


Khepri is an algorithmic design tool based on the idea that a single algorithmic description can be used to generate equivalent models in CAD, BIM, analysis, and game applications. It is a direct descendant of Rosetta with considerable improvements in performance, and user interaction capabilities. Currently, it is implemented using the Julia programming language, as it provides a smooth learning curve, fast execution of computationally-intensive algorithms, and the capacity for large-scale development. Khepri is still in development and is currently used to support both the research & development goals of ADA, and an architectural course at Instituto Superior Técnico in Lisbon, Portugal. is a hybrid programming solution that combines Grasshopper, a visual programming environment, with Khepri, a flexible and scalable textual programming tool. establishes a bridge between the visual and the textual paradigm, offering its users the best of both worlds while providing an extra set of advantages, including portability among CAD, BIM, and analysis tools.


Luna Moth is a HTML5/JavaScript-based web application that harnesses the performance and graphical capabilities available in modern web browsers, complemented with a companion application for allowing models to be exported to traditional CAD applications. Using this IDE, architects can write their GD programs and visualize the results without being chained to a particular computer, and can easily integrate results into their normal workflow.


Rosetta is a generative design tool that allows the creation and manipulation of geometric data in CAD and BIM applications using different programming languages. Its aim is to aid architects in using computational design processes to generate and manipulate complex geometry. Rosetta was implemented in AutoCAD, Rhinoceros, SketchUp, Revit, ArchiCAD, Radiance, Robot, OpenGL and TikZ, using Racket, Python, Processing, and Lisp as front-end languages.

The development of these tools was supported by national funds through
(Fundação para a Ciência e a Tecnologia) with references PTDC/ATP-AQI/5224/2012 and PTDC/ARTDAQ/31061/2017.

Legal Notice