Fractal Aesthetics in Architecture

Journal paper, in Applied Mathematics & Information Sciences. (article)

Wolfgang E. Lorenz, Jan Andres und Georg Franck. This paper deals with fractal aesthetics and proposes a new fractal analysis method for the perceptual study of architecture. The authors believe in the universality of formulas and aim to complement the architectural description in terms of proportion. ...

Autor Jezek

Webdesign für den Autor Dr. Jezek und das Buch Rachemond.

three.js

Example: Sunbeams

an example for three.js

SimAUD 2017

A Building Database for Simulations Requiring Schemata. (book)

Gabriel Wurzer, Jelena Djordjic, Wolfgang E. Lorenz und Vahid Poursaeed.
Obtaining spatial representations of existing buildings for use in simulation is challenging: To begin with, getting permission to access submitted construction plans can take a long time.. ...

Steuerberater Kanzlei

Redesign der Homepage für die Kanzlei Kowarik als Responsive Design.

Steuerberater Kanzlei

Redesign der Homepage für die Kanzlei Jupiter als Responsive Design.

 

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 );
}