Contemporary architecture has given rise to the design of free-form surfaces with a high degree of complexity. Traditional design methods are unable to solve many of the problems associated with these complex forms, resulting in a gap between the designs proposed by architects and the search for increasingly challenging solutions that are sometimes left to other specialists. Techniques are presented for the development of an algorithm capable of rationalising free-form surfaces so that they are always ruled surfaces and we can know whether they are developable – or if they are not – we can assess the degree of deviation and locate the most problematic areas of the surface. The algorithm allows us to change the design of the surface, obtaining in real time and simultaneously the necessary data to modify the surface until it is developable or to indicate the level of deviation so that it is controlled within acceptable tolerance ranges. The objectives are: to develop an algorithm capable of generating ruled surfaces and assessing in real time whether they are developable; to be able to integrate the algorithm as part of the architectural design, so that it can be rationalised during the project generation phase, avoiding leaving essential parts of the project design unresolved for a later stage; and to introduce students to the field of procedural design and algorithmic thinking.