Transcript
This transcript was autogenerated. To make changes, submit a PR.
Hello and welcome. I am Toddy Copian. This is programming
your way up a skyscraper. Coding in HMC Architects profession here at Conf
42. Let's get started. Little bit about me. Design technologist,
developer background architecture. I've built everything from ballparks
to skyscrapers, to apartments and everything in between. And the
common thread has been doing things better with data and automation.
And Python has been a big benefit to me, my team. So I'll
show you a little bit about what's possible with Python, and it is that Python
makes it possible. I want to show you this great set of examples of what
all the tools and methods Python has been
utilized to work with the architects out there. And just
to be clear, there's architects and there's architects. I'm talking about traditional building
construction, architects of floor plans and stuff like that. Many of you might be familiar
with computer architects and system design architects,
but they both have a common ground with Christopher Alexander's pattern language,
which has been a big influence to both disciplines. The idea of a
pattern language is you can reuse pattern that you created in the past
that has been reliable and you can reuse it to came without reinventing the whole
process every time, not only saving you a lot of effort, but also making
it easier to make efficient processes.
It's a philosophy of design. It's influenced me, a lot of other designers
out there and programmers worldwide. So if you are thinking like what
this is, there's actually a lot of common ground. These aren't two separate things altogether.
They provide different outputs, but they're very similar. And a quick history lesson of
HMC Architects works. Historically, you would think architects are
drawing pictures all day long that can create the
design. And you keep coding through that process of
drawing, updating drawings, getting feedback, creating the modifications,
getting more detail in your design. And in the past, you had anywhere from
a few dozen drawing plans to a few hundred. Now you need
thousands, literally thousands. I've worked with decks construction.
Document decks have thousands of documents. It's a wasteful and limited process.
It's kind of outgrown its use. So people are moving into different
ways to work, and that's where computer technology comes into play.
This is just one example of some computational design. Computational design is basically
using computers to help you create a design based on your inputs and parameters,
and working through that with the aid of a computer. Basically not possible with
a human hand. So this has been utilized a lot by
architects over the last decade or so, and traditional means of
design documentation not sufficient. So we're trying to do something more sophisticated
like this without spending 100 years trying to draw it and document
it and make it functional, constructable, building. That's where python comes to play.
Something as simple as just creating geometry with code
and scripts. Just simple scripting has gone a long way. In this example,
you can see here that we create a bunch of points as a diamond shape.
The points are then connected into planes, and then you could take this one shape
you created and then multiply it, and from there you can get much more sophisticated.
They can see the starting points if he's using the code. And this is in
an example called grasshopper and rhino. It's a general purpose
3d modeling tool, and it's gotten a lot of traction. This is what more
designers want to do. They want to create elaborate concepts
in design and make it construction, but they don't want to be
limited by the software and technology around them. So this has been the
starting point over ten years ago with a lot of architects, and we also use
a system called building information modeling. The idea is that you can combine a
3d model with a database, a relational
database that has content like the size of a wall,
the type of a floor, whether it's concrete or wood, what have you.
Keep it in the model, keep it all together,
and from there you can use it in your drawings.
So you have more information embedded in your drawings. It's been a big time saver
because you have a database. But we also want to work
with this information, again, not be limited by the software one uses.
Revit. Revit has an open source tool called Dynamo,
this big old colorful shape in the middle, which can help
you automate the process of coding data and geometry
to the model so you're not trying to be a monkey and run through
everything yourself. And this is an example of dynamo. It's a visual
scripting medium, it's low code. You can do cool things like create this
curvy geometry through a dataflow and then add like an image to
it. It's very fun to do that kind of stuff and explore this way.
It's not something you can really do with the software, the revit software on your
own. And I've been using it, for example, to create towers. And all I
do is put an input of a bunch of coordinates with the type of levels
and walls I want. I modify the inputs, and I have an
output of floors and walls that I want in the model, and it looks like
this. On the left is the wireframe of the inputs and extruding it
through 100 levels on the right. I have a fully formed skyscraper that
I can have elevations for and put in my documentation sheet,
which has been great and it's really an awesome output.
And Dynamo with all this visual scripting is what was my gateway into programming.
But sometimes you want to do more and this is my gateway into Python
programming was the node of Python in Dynamo that lets
you do much more with fewer steps. And once I discovered this, I kind of
fell in love. You can do something as simple as taking geometrical
shape like just a basic rectangle with a length of width of 100ft. And through
a couple of variables of setting the origin and rotation
axis, you can iterate through the rotation
using floats and a set degree and just create a twisting tower.
You could do this in the visual scripting format, but it takes more steps and
may not be has fluid, but I could take something as simple as a script
in Pythonweb in this visual scripting medium and create
some great shapes. So this is what's been releasing a lot of
efficiency and benefit for designers using just Pythonweb. A very very simple
python I could teach a child. And this is something we'll grow with here.
And on top of that, we have another great tool called Blender. I think more
than a few of you have used it. It's a different software platform than what
I've talked about with Rhino and Rabbit, but these are all completely different products from
completely different companies. And proprietary open source like blender, they're all using
Python supports Python. It has a huge user community
and it does a great job using a system called meshes. It's not
data, it's mesh. But there's a new add in called Blender
BIM, which takes that building information, modeling, that database format with parametric
modeling, and an open source format called IFC to then
take the free to use blender tools with these integrations
with these open source formats, to then create your geometry, then push into a proprietary
format like Revit or ArchicAd as BIM models, which to me
my world is like candy. This is amazing that I can open so many avenues
design and configuration and so free floating from there.
This is what it looks like basically in blender you create a series
of meshes, then volumes, and then you attribute shapes
to it and you can put components like windows and doors through it. With the
blender Bim add in and really in a very few steps you
can go from just some basic massing to a full building section floor plan
c here. This is all possible thanks to the contributors in the
space of both Blender and Pythonweb, and just the growth of information in the
built environment. And you can eventually take it and create something like this,
a skyscraper, which is kind of like the whole point of this
talk is how we can get architects the tools they need to
design faster and better, to get better results and to get the design they
want. Others are architects, very open minded people, but at the end of the day,
this is what they want to do. They want to design, they want to make
the most compelling kinds of work. And all
these tools with the Python open source community has been
making that possible over the years. And another great example of is not just designing,
but also designing with a lot of thought in mind.
And these days, environmental design, sustainable design, isn't big.
We have another great contributor from the Pythonweb community called Ladybug
Tools, which can run in any geometry engine. From any of the examples I showed
before, all written in Pythonweb. Pip install LBT ladybug
tools. It's really cool. In this case, you're seeing the sun kind of
canvas overhead, and we can get the sense of how much light's in the room
really useful, especially in this visual scripting stage that I showed you earlier, that you
could just kind of design your room. You don't export to another software. It gives
you some greater results, gives you some options. It goes through a lot of neural
networks to give you some options of what's possible with the results, and helps you
narrow down definition of what you're trying to find in the most balanced
room for light and energy, and pick a few from there. If you're
not super savvy at a high level, you can make some good decisions.
And another tool from that same developer is called
honeybee, and helps you visualize the spaces for daylight energy analysis.
This is going to be a big win for people who are designing spaces.
You can imagine this being a single floor of a 100 story building, and if
the building is oriented north, this energy study holds up in
every floor because the sun's going to come in the same way, assuming there's no
shadows, for example, blocking you. So these are the kind of tools that can be
useful in a very fast way to get some great results. They're all free,
and you could take that. And then instead of just having these kind of one
off designs and kind of just leaving it done, when we finish the project,
we can study the building. There's an example. We have a tower that has lot
of floors, and for each one has a different space and different kind of space
for different purposes. At the bottom there you can see the x axis displaying
date and the y axis displaying kilowatt hours and how
much time that's being, or how much energy being used over time. So now we
have a live information feedback in the built space because we
have something like Python to collect this data as an energy model and export it
in a very straightforward way so we don't have to just assume it's working okay
per design. You have to always check it. And this is kind of the growth
of python. In the future it'll be a great tool for integration.
You can use all sorts of data formats like XML,
CSV, HTML, JSON, the bin models, the design models,
everything put into Python. From there you can get data frames to pandas,
do can energy analysis or data analysis and visualization of mapplotlib or
so many other packages and libraries. This is where Pythonweb becomes
the glue between different kinds of efforts in the built space and
design space. And again, just want to reiterate it, Python makes it
possible. It used to be architects were kind of beholden
to proprietary formats and corporate kind of expectations
of how you work. This has really opened floodgates for us to work more
fluidly. And I think all the contributors here, special thanks to everybody here.
These are all open source tools. Some of the other software
is proprietary, but everything you see here is effectively either open source
and primarily Python and developed by open source contributors. So a
big thanks to everybody on this list and to Python contributors out everywhere.
Whatever you do makes a big difference. Your software is being utilized in ways you
wouldn't expect before. So I'm going to keep shouting to the rooftop about
how we we can design better buildings. Large came small scale, any scale
with Python tools, and just hope we have more traction.
And thanks everyone for attending my talk at conf
42. Please get in touch with me if you have any questions about this talk.
Just want to chat. It's been good talking with you. Have a good one.
Thanks,