"Sun Shots"
This project uses three.js. Make your choice and press reset. Or press play button and change settings.
- a source creates point
- the point move away from source
- intersections with ground or buildings are highlighted
This project uses three.js. Make your choice and press reset. Or press play button and change settings.
code
///////////////////////////////////
// ADD BUILDINGS ////////////
/* construct buildings */
var buildings = new THREE.Object3D();
/* building1 */
var mGeometry = new THREE.BoxGeometry( bWidth, bHeight, bDepth );
var mMaterial = new THREE.MeshLambertMaterial( { color: 0xffff00 } );
var building1 = new THREE.Mesh( mGeometry, mMaterial );
/* edges */
var mEdges = new THREE.EdgesGeometry( mGeometry );
var mLine = new THREE.LineSegments( mEdges, new THREE.LineBasicMaterial( { color: 0x0000ff } ) );
building1.add ( mLine );
/* change position */
building1.position.x = - bWidth * 2 ;
building1.position.y = bHeight / 2 ;
building1.position.z = bDepth * 3 ;
buildings.add ( building1 );
///////////////////////////////////
// SHADOWS //////////////////
/* 1. tell the renderer that you want shadows */
renderer.shadowMap.enabled = true;
renderer.shadowMap.type = THREE.PCFSoftShadowMap;
renderer.shadowMapSoft = true;
for (var i = 0; i < buildings.children.length; i++) {
/* 2. enable objects to cast shadows */
buildings.children[i].castShadow = true;
/* 3. enable objects to receive shadows */
buildings.children[i].receiveShadow = true;
}
/* 3. enable objects to receive shadows */
ground.receiveShadow = true;
/* 4. enable a light source to cast shadows (directional or spotlight only) */
light1 = new THREE.PointLight( 0xff0000, 1, 100 );
light1.position.set( sunSphere.position.x, sunSphere.position.y, sunSphere.position.z );
light1.castShadow = true;
scene.add( light1 );
///////////////////////////////////// INTERSECTIONS ///////////
var numPts = sunPoints.children.length;
/* move */
for (var i = 0; i < numPts; i++) {
sunPoints.children[i].translateX ( sunPoints.children[i].userData.direction.x * step )
sunPoints.children[i].translateY ( sunPoints.children[i].userData.direction.y * step )
sunPoints.children[i].translateZ ( sunPoints.children[i].userData.direction.z * step )
if (( getDistance( sunPoints.children[i], sunSphere ) > maxradius ) || ( sunPoints.children[i].position.y > sunSphere.position.y ) || ( sunPoints.children[i].position.y < (-2 * step) )) {
sunPoints.children[i].userData.delete = true;
} else {
var bounding_sp = new THREE.Box3().setFromObject(sunPoints.children[i]);
var ground_bounding = new THREE.Box3().setFromObject(ground);
var intersectGround = ground_bounding.intersectsBox(bounding_sp);
/* intersection of "sun points" with ground */
if ( intersectGround == true ){
sunPoints.children[i].userData.intersects = true;
} else {
/* intersection of "sun points" with buildings */
for (var j = 0; j < buildings.children.length; j++) {
var building_bounding = new THREE.Box3().setFromObject(buildings.children[j]);
var intersectBuilding = building_bounding.intersectsBox(bounding_sp);
if ( intersectBuilding == true ){
sunPoints.children[i].userData.intersects = true;
} else {
sunPoints.children[i].userData.delete = false;
}
}
}
}
}
Der Einsatz von algorithmischen Planungsmethoden in der Architektur erfordert eine andere Denkweise.
259.353 Themengebiete der algorithmischen Planung und Analyse
259.350 Programmieren für ArchitektInnen
259.349 Analyse komplexer Planungsaufgaben
253.455 Explorative algorithmische Lösungsgenerierung
Ergänzungsfächer:
259.670 Mass Customization und Individualisierte Architekturproduktion
259.669 Algorithmen in der Planungspraxis
Algorithmus unterstütze Planung zur Entwicklung eines nutzungsvielfältigen mehrgeschossigen Gebäudes
Das Entwerfen mit dem Titel „T:E:T:R:I:S“ verbindet die Planung eines mehrgeschoßigen nutzungsvielfältigen Gebäudes mit digitalen Entwurfsstrategien. Als algorithmische Planungsunterstützung sind drei Strategien denkbar: ...
F2F: Algorithmic approach on kindergarten architecture
Talk and Proceeding: eCAADe 2023 – Digital Design Reconsidered (TU Graz | conference)
In the context of the design studio "Kindergarten meets Easy Rider", new and innovative ways of building kindergartens were examined. In more detail, we took the biking milieu with its demand for freedom and individualism as a starting point for rethinking kindergarten design. ...