Visual representation of adjacencies

eCAADe SIGraDi 2019 - Architecture in the Age of the 4th Industrial Revolution. (paper & talk)
W Lorenz, G. Wurzer. This paper is based on the assumption that a key challenge of good design is spatial organisation as a result of functional requirements. The authors present a new NetLogo application that assists designers to understand the proposed functional relationships (of spaces) by visualizing them graphically. ...

kleines Entwerfen customized bricks

digitales Entwerfen
G. Wurzer, W.E. Lorenz, S. Swoboda. Nach positiver Absolvierung der Lehrveranstaltung sind Studierende in der Lage algorithmisch zu Denken. Durch das Präzisieren der Problemstellung sind die Studierenden in der Lage den sinnvollen Einsatz von Algorithmen im Planungsprozess gedanklich zu erfassen. ...

Bridgemagazine Webpage

Webdesign für das bridgmagazin – Medieninhaber (Herausgeber) und Verleger: Österreichischer Bridgesportverband (ÖBV) | Audio Video Werbe-GmbH.

Stegreifentwerfen Hot Wood follow up

follow up "Würschtlstand"
W.E. Lorenz, G. Wurzer, S. Swoboda. Nach positiver Absolvierung der Lehrveranstaltung sind Studierende in der Lage algorithmisch zu Denken. Konkret erlangen sie die Fähigkeit jene Teile des Entwurfsprozesses zu erkennen, die ausprogrammiert zu schnelleren und allenfalls besseren Lösungen führen. Dabei greifen die Studierenden auf die Ergebnisse des kleinen Entwerfens "Hot Wood" aus dem Sommersemester 2019 zurück. ...

 

Menger Sponge

This project uses three.js. Make your choice and press reset.

code

///////////////////////////////////////////////////////////////////////
////////////////// MENGER SPONGE //////////////////
/* recursive */

function mengerSponge(posI, posJ, posK, boxSize, iteration, maxIterations) {
  /* construction of menger sponge */
  for (var i = 1; i <= 3; i++) {
    for (var j = 1; j <= 3; j++) {
      for (var k = 1; k <= 3; k++) {
        if (
            ( i != 2 && j != 2 && k != 2 ) ||
            ( i != 2 && j != 2 && k != 1 ) || ( i != 2 && j != 2 && k != 3 ) ||
            ( i != 2 && j != 1 && k != 2 ) || ( i != 2 && j != 3 && k != 2 ) ||
            ( i != 1 && j != 2 && k != 2 ) || ( i != 3 && j != 2 && k != 2 )
           ) {
          if (iteration < maxIterations) {
            mengerSponge((posI + i * boxSize), (posJ + j * boxSize), (posK + k * boxSize),
                                    (boxSize / 3), (iteration + 1), maxIterations);
          } else if (iteration = maxIterations) {
            drawCube( i, j, k, posI, posJ, posK, boxSize );
          }
        }
      }
    }
  }
}
function drawCube(i, j, k, posI, posJ, posK, boxSize) {
  /* construct object */
  var object = new THREE.Object3D();
  /* cube */
  var mGeometry = new THREE.BoxGeometry( boxSize, boxSize, boxSize );
  var mMaterial = new THREE.MeshLambertMaterial( { color: 0xffff00 } );
  var cube = new THREE.Mesh( mGeometry, mMaterial );
  cube.position.set(posI + ((i + 1) * boxSize) - 3, posJ + ((j + 1) * boxSize) - 1, posK + ((k + 1) * boxSize));
  /* casting shadows */
  cube.castShadow = true;
  object.add ( cube )
  scene.add ( object );
}