bricks are landing

algorithmic design of bricks pavilion (book) W.E. Lorenz, G. Wurzer (Hrg.). Mit einem Vorwort von Franz Kolnerberger (Geschäftsführer Vertrieb Wienerberger Österreich GmbH).
ISBN: 978-3-9504464-1-8
Im Zuge des kleinen Entwerfens “bricks are landing” (WS 2017) wurde die algorithmische Formfindung und/oder Optimierung an Hand eines freistehenden Pavillons untersucht. Übergeordnetes Ziel des Entwerfens war es das Verständnis und den Einsatz des algorithmischen Denkens in der Architekturpraxis zu fördern. ...

Journal Paper: A Cell-Based Method to Support Hospital Refurbishment

in  Applied Mechanics and Materials (Volume 887)

G. Wurzer, U. Coraglia, U. Pont, C. Weber, W Lorenz, A. Mahdavi

Hospital refurbishments often take place in parallel to regular operation, resulting in a scheduling problem: Construction activities must located such as they do not clash with daily work activities and vice versa. ...

Handbuch für Gildefunktionäre: Leitfaden der Pfadfinder-Gilde Österreichs

Überarbeitet von Wolfgang E. Lorenz, Ferry Partsch, Werner Weilguny. Das Handbuch dient als Nachschlagewerk und bietet eine umfangreiche Information zu allen relevanten Aspekten einer einzelnen Pfadfinder-Gilde. ...

Options for obtaining a 'Gründerzeit' flat – A wet dream explored by means of a Cellular Automata model

Talk and Proceeding: eCAADe 2018 - Computing for a better tomorrow - Proceedings of the 36th eCAADe Conference (Lodz, Poland, 2018). (paper & talk)

G. Wurzer, W Lorenz. This work explores the dichotomy between old areas offering high-quality living in a low-density neighborhood (typically near the city center) and newly-developed areas with high-density and lesser quality in the suburbs. ...

Vortrag

Architekt Robert Kramreiter – die Pfarrkirche Maria Lourdes: Anlässlich der 60 Jahrfeier des Weihetermines der Pfarrkirche Maria Lourdes in Wien Meidling werden vor allem die Einflüsse verschiedener Personengruppen im Zuge der Entwurfsplanung betrachtet.

Studie 3D Visualisierung

Studie/Visualisierung zur Planänderung des Flächenwidmungs- und Bebauungsplanes an Hand eines konkreten Fallbeispieles.

zur 3D-Studie

 

Sunbeams

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

  • intersections between sunbeams and ground

code

///////////////////////////////////
// ADD BUILDING /////////////
  /* construct building */
  var building = new THREE.Object3D();
  for ( var i = 0; i < xSize; i++ ) {
    for ( var j = 0; j < ySize; j++ ) {
      for ( var k = 0; k < zSize; k++ ) {
        /* cube */
        var mGeometry = new THREE.BoxGeometry( boxSize, boxSize, boxSize );
        var mMaterial = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
        var cube = new THREE.Mesh( mGeometry, mMaterial );
        /* edges */
        var mEdges = new THREE.EdgesGeometry( mGeometry );
        var mLine = new THREE.LineSegments( mEdges, new THREE.LineBasicMaterial( { color: 0x0000ff } ) );
        cube.add ( mLine );
        //cube.userData = "isBuilding";
        /* change position */
        cube.position.x = ( i * boxSize ) - ((( xSize - 1 ) / 2 ) * boxSize );
        cube.position.z = ( j * boxSize ) - ((( ySize - 1 ) / 2 ) * boxSize );
        cube.position.y = ( k * boxSize ) + ( boxSize / 2 );
        building.add ( cube );
      }
    }
  }
  scene.add ( building );

///////////////////////////////////
// CALCULATE INTERSECTION
  /* midpoint of sun */
  var Sx = sphere.position.x
  var Sy = sphere.position.y
  var Sz = sphere.position.z
  /* the normal of the plane */
  var Ex = pNormal.x
  var Ey = pNormal.y
  var Ez = pNormal.z
  for (var i = 0; i < building.children.length; i++) {
    /* midpoint of cubes */
    var Mx = building.children[i].position.x
    var My = building.children[i].position.y
    var Mz = building.children[i].position.z
    /* line: Sx + (Mx -Sx) * t; Sy + (My -Sy) * t; Sz + (Mz -Sz) * t;
       plane: normal and pt (0,0,0) */
    var t = ( - Ex * Sx - Ey * Sy - Ez * Sz ) / (Ex * Mx - Ex * Sx + Ey * My - Ey * Sy + Ez * Mz - Ez * Sz )
    var ptX = Sx + ( Mx - Sx ) * t
    var ptY = Sy + ( My - Sy ) * t
    var ptZ = Sz + ( Mz - Sz ) * t
    /* intersection point as sphere */
    var iGeometry = new THREE.SphereGeometry( boxSize, 16, 16 );
    var iMaterial = new THREE.MeshBasicMaterial( {color: 0x0fff00} );
    var intersPt = new THREE.Mesh( iGeometry, iMaterial );
    /* change position */
    intersPt.position.x = ptX;
    intersPt.position.y = ptY;
    intersPt.position.z = ptZ;
    scene.add( intersPt );

    /* show sunlines */
    var midPointSphere = sphere.position
    var midPointMesh = intersPt.position
    var dirGeometry = new THREE.Geometry();
    dirGeometry.vertices.push( midPointSphere, midPointMesh );
    var dirMaterial = new THREE.LineBasicMaterial({ color: 0x0f00ff });
    var dirLine  = new THREE.Line( dirGeometry, dirMaterial );
    scene.add( dirLine );
    if (program.get('showSunLines') == true) {
      dirLine.visible = true
    } else {
      dirLine.visible = false
    }
  }