Tektoniek workshop at TU Delft

On Tuesday April 7th, I spent the day at the faculty of Architecture, at TU Delft, Netherlands, my alma mater. That week, Tektoniek organized a workshop for both architecture and engineering students to create fabric formed structures based on design input from bi-directional evolutionary structural optimisation (BESO). The entire Tektoniek event was supported by the Cement&BetonCentrum, bureaubakker, TU Delft and Weber Beamix.

Read more »

TeXlipse and Biblatex

Biblatex is a package for LateX that provides more control over the way references are managed. A quick introduction can be found here, and more detailed information here. Using the package with all the default values works great, but then you are not really making the most of it. Once you start changing options, there is one important thing you should know…

Read more »

Change the default language in Eclipse

Find the eclipse.ini file.

On Mac: eclipse/Eclipse.app/Contents/MacOS/eclipse.ini
On Windows: eclipse/eclipse.ini

Add the following line:

-Duser.language=en

No Hyper-Threading – Speed up your python code and Rhino commands

Hyper-threading splits up each of your physical processor cores into two virtual or logical cores. This technology can improve the performance of some applications which are optimized for hyper-threading. However, all python code I wrote and almost all Rhino commands do not benefit from hyper-threading technology. You can often run your code (and Rhino commands) twice as fast by simply disabling hyper-threading in your BIOS setup. Just enter your BIOS setup during start-up, go to Config -> CPU -> Intel(R)Hyper-Threading Technology -> Disable -> Save and Exit.

Read more »

Texlipse viewer settings on Mac

Texlipse is a LaTeX plugin for Eclipse. It’s great. I even find it more convenient than dedicated LaTeX editors. However, I seem to have to figure out how to configure the different viewers over and over again, so therefore a quick post about it.

Read more »

ShapeOp Python bindings

Recently, the Computer Graphics and Geometry Laboratory of EPFL released the ShapeOp library, which is “a header-only C++ library for static and dynamic geometry processing, using a unified framework for optimization under constraints“.

The process of creating Python bindings for the library is described in the official documentation. However, if you are on Mac and using a non-framework version of Python, such as one provided by macports, anaconda, homebrew …, you may need a few more instructions. I will describe the process for the macports version of Python.

Read more »

Profile your code

Research in the field of Structural Design is more about developing concepts than implementations. If a concept is sound, the details of the implementation can be figured out later, by someone with more computational and/or programming experience.

Of course, while developing concepts and approaches, we need some kind of implementation to test and prove they actually work. And, let’s face it, we all like writing reasonably fast and robust implementations. Therefore, at one point or another, we all rewrite code to optimise and make it run faster.

In my experience, the slowest part of your code is almost never the part you imagined. Profiling your code before optimising will save you a lot of work.

Read more »

Dynamic relaxation

In previous posts, we described how to read network data from a file and convert it into matrices relevant for structural calculations. Here, we will use the method of dynamic relaxation to compute an equilibrium shape of the provided network data.

Read more »