<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IAAC Blog &#187; daylight</title>
	<atom:link href="http://legacy.iaacblog.com/blog/tag/daylight/feed/" rel="self" type="application/rss+xml" />
	<link>http://legacy.iaacblog.com</link>
	<description>Everyday life at the Institute for advanced architecture of Catalonia</description>
	<lastBuildDate>Wed, 07 Oct 2015 10:24:58 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Ecotect – Mechanic Applications</title>
		<link>http://legacy.iaacblog.com/blog/2010/ecotect-%e2%80%93-mechanic-applications/</link>
		<comments>http://legacy.iaacblog.com/blog/2010/ecotect-%e2%80%93-mechanic-applications/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 13:58:46 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[S5. Environmental Performance Modelling]]></category>
		<category><![CDATA[brick]]></category>
		<category><![CDATA[daylight]]></category>

		<guid isPermaLink="false">http://legacy.iaacblog.com/?p=747</guid>
		<description><![CDATA[Project Description: light seeking machines are programmed to push grounded bricks towards light cast onto the floor.  (eg. the sunlight coming through a window).  As the sun rises and sets the light path moves and the bricks follow, thus creating emergent patterns. Lighting simluations via Ecotect will be used to: 1.  Study how brick placement [...]]]></description>
				<content:encoded><![CDATA[<p>Project Description:<br />
light seeking machines are programmed to push grounded bricks towards light cast onto the floor.  (eg. the sunlight coming through a window).  As the sun rises and sets the light path moves and the bricks follow, thus creating emergent patterns.<br />
Lighting simluations via Ecotect will be used to:<br />
1.  Study how brick placement can change the daylight factor<br />
2.  Speculate and map the potential “buildable” area<br />
3.  Help calibrate the sensitivity of the machine’s light sensors (eg. only drive towards x range in lumens)</p>
<p><a rel="attachment wp-att-748" href="http://legacy.iaacblog.com/2010/04/ecotect-%e2%80%93-mechanic-applications/2010-02-16-assignment/"><img class="aligncenter size-full wp-image-748" src="http://legacy.iaacblog.com/wp-content/uploads/2010/04/2010-02-16-Assignment1.jpg" alt="" width="500" height="353" /></a></p>
<p>Daylight Factor – Analysis Grid:</p>
<p>This study shows how will the number of bricks, it’s placement and material effect the daylight factor of a space?</p>
<p><a rel="attachment wp-att-749" href="http://legacy.iaacblog.com/2010/04/ecotect-%e2%80%93-mechanic-applications/2010-02-16-assignment2/"><img class="aligncenter size-full wp-image-749" src="http://legacy.iaacblog.com/wp-content/uploads/2010/04/2010-02-16-Assignment21.jpg" alt="" width="500" height="353" /></a><a rel="attachment wp-att-750" href="http://legacy.iaacblog.com/2010/04/ecotect-%e2%80%93-mechanic-applications/2010-02-16-assignment3/"><img class="aligncenter size-full wp-image-750" src="http://legacy.iaacblog.com/wp-content/uploads/2010/04/2010-02-16-Assignment31.jpg" alt="" width="500" height="353" /></a><a rel="attachment wp-att-751" href="http://legacy.iaacblog.com/2010/04/ecotect-%e2%80%93-mechanic-applications/2010-02-16-assignment4/"><img class="aligncenter size-full wp-image-751" src="http://legacy.iaacblog.com/wp-content/uploads/2010/04/2010-02-16-Assignment41.jpg" alt="" width="500" height="353" /></a></p>
<p>Using Tedngai’s “Ecotect Analysis Grid 2 Rhino” script, DF analysis data was converted to a surface as a means of 3D mapping “buildable“ area.  The surface peaks and valleys represent high and low lumen levels, and or the absence or prsence of a brick.</p>
<p>Sample Ecotect Data:</p>
<p>1.2768, 1.28509, 1.28971, 2.2466, 3.2209, 6.85491, 13.5377, 16.4381, 17.3614, 19.4248, 19.1552, 17.8918, 17.594, 14.5499, 6.93391, 2.14391, 2.20469, 1.53283, 1.28647, 1.27194, 2.30118, 2.73324, 2.74547, 3.41999, 6.16329, 8.74706, 12.8397, 15.7009, 16.3073, 16.8703, 17.0259, 16.4576, 14.7066, 12.666, 8.22195, 4.83835, 2.97473, 2.02677, 2.40924, 2.30426, 2.0747, 2.02002, 2.69397, 3.96526, 5.18788, 7.06709, 9.70132, 11.1143, 12.1092, 13.5396, 11.7393, 12.2442, 11.5015, 9.74278, 6.9234, 4.75648, 3.81966, 3.62953, 2.42884, 2.75764, 1.83838, 1.94818, 2.2208, 3.75749, 4.04008, 5.90577, 7.41432, 8.33884, 9.43079, 9.25285, 9.03335, 8.62411, 8.31394, 7.14627, 5.73228, 3.91285, 3.94581, 3.76494, 2.97021, 2.5216, 1.89475, 2.14126, 3.055, 3.08061, 2.89965, 4.04766, 5.57898, 6.80126, 6.36056, 6.40134, 6.67575, 7.15078, 5.91055, 5.69576, 4.27529, 3.05747, 2.99106, 3.09462, 2.20309, 2.05633,<br />
1.85562, 2.03552, 3.10559, 2.49052, 3.13657, 3.41528, 5.54401, 5.92736, 6.36552, 5.90912, 5.88865, 6.22181, 6.2505, 5.57344, 4.11307, 3.71256, 3.17819, 2.73857, 1.96613, 3.06346, 2.01836, 2.02988, 2.26621, 2.35518, 3.38627, 3.344, 4.12191, 3.99017, 4.26249, 4.88275, 4.80359, 4.77441, 4.54185, 4.21487, 3.04055, 3.04184, 2.35258, 2.26329, 1.94979, 1.9444, 1.90657, 2.31015, 2.42426, 2.38327, 2.82048, 2.84921, 3.04882, 3.74024, 3.54746, 4.0733, 3.77888, 3.4448, 3.30655, 3.87451, 3.02156, 2.93381, 3.04403, 2.37739, 2.16169, 1.75126, 1.79731, 2.16931, 2.24606, 2.35343, 2.81032, 2.36299, 3.24828, 3.10861, 3.5611, 3.06863, 3.19607, 3.57656, 3.15272, 3.18106, 2.37691, 2.42856, 2.24275, 1.9301, 2.16177, 1.62165, 2.13292, 1.90805, 1.95094, 2.0845, 2.36087, 2.33945, 2.7065, 2.82244, 2.27793, 2.52459, 2.57047, 3.29654, 2.67105, 2.57165, 2.75952, 2.37649, 1.95443, 1.97441, 1.92028, 1.77821,<br />
1.41463, 1.58291, 2.00339, 2.00491, 2.26463, 1.8814, 2.3462, 2.30018, 2.37029, 2.60315, 2.60932, 2.44595, 2.74773, 2.57349, 2.31259, 2.23082, 2.06018, 2.02529, 1.9747, 1.72442, 1.6252, 1.88378, 1.61556, 2.26583, 1.98621, 2.32065, 2.27648, 2.52604, 2.45433, 2.76427, 2.46203, 2.74566, 3.12017, 3.00515, 2.29023, 1.89043, 1.71414, 1.86376, 1.57139, 1.4298, 1.56866, 1.52367, 1.86996, 1.47389, 2.20521, 1.97464, 2.366, 0, 2.96831, 0, 0, 3.04562, 0, 0, 2.24489, 1.906, 1.79433, 1.72464, 1.61449, 1.58028, 1.59958, 1.44488, 1.46463, 1.82442, 1.55283, 1.95514, 2.27154, 2.33628, 2.42075, 2.46626, 0, 2.10981, 1.96945, 2.27968, 2.1647, 1.9145, 1.54681, 1.75096, 1.45142, 1.45571, 1.37694, 1.41833, 1.47806, 1.76558, 1.86742, 1.41017, 2.28152, 1.92666, 0, 2.4009, 2.37541, 0, 1.97827, 1.96118, 1.95548, 1.57764, 1.83329, 1.42455, 1.40263, 1.56174, 1.50026, 1.39591, 1.39619, 1.53413, 1.49531, 1.43636, 1.8753, 1.84723, 2.19027, 1.90457, 0, 1.83741, 1.63231, 1.77766, 1.56946, 1.5087, 1.50814, 1.50956, 1.46052, 1.57554,</p>
<p>Rhinoscript to Convert Ecotect Data:</p>
<pre>Option Explicit</pre>
<pre>'Script written by Ted Ngai    Apr 2008</pre>
<pre>'This work is licensed under a  Creative Commons Attribution-Share Alike 3.0 United States License.</pre>
<pre>'http://creativecommons.org/licenses/by-sa/3.0/us/</pre>
<pre></pre>
<pre>Call ReadPts()</pre>
<pre></pre>
<pre>Sub ReadPts()</pre>
<pre></pre>
<pre>        Dim strFilter, strFileName</pre>
<pre>        strFilter = "Text File (*.txt)|*.txt|All Files (*.*)|*.*||"</pre>
<pre>        strFileName = Rhino.OpenFileName("Open Point File", strFilter)</pre>
<pre>        If IsNull(strFileName) Then Exit Sub</pre>
<pre></pre>
<pre>        Dim objFSO, objFile, objFileCC</pre>
<pre>        Set objFSO = CreateObject("Scripting.FileSystemObject")</pre>
<pre></pre>
<pre>        On Error Resume Next</pre>
<pre>        Set objFile = objFSO.OpenTextFile(strFileName, 1)</pre>
<pre>        Set objFileCC = objFSO.OpenTextFile(strFileName, 1)</pre>
<pre>        If Err Then</pre>
<pre>               MsgBox Err.Description</pre>
<pre>               Exit Sub</pre>
<pre>        End If</pre>
<pre></pre>
<pre>        'Read all the numbers into an array</pre>
<pre>        Dim txt, a</pre>
<pre>        txt = objFile.ReadAll</pre>
<pre>        a = Split(txt,",")</pre>
<pre>        If Not IsArray(a) Then Exit Sub</pre>
<pre>        'Rhino.Print Ubound(a)</pre>
<pre>        'Rhino.Print a(0)</pre>
<pre></pre>
<pre>        'Check for number of columns</pre>
<pre>        Dim col, row, b</pre>
<pre>        row = 1</pre>
<pre>        b = objFileCC.ReadLine</pre>
<pre>        col = Split(b,",")</pre>
<pre>        'Check for number of rows</pre>
<pre>        Do While objFileCC.AtEndOfStream &lt;&gt; True</pre>
<pre>               objFileCC.SkipLine</pre>
<pre>               row = row+1</pre>
<pre>        Loop</pre>
<pre>        Rhino.Print "U : " &amp; Ubound(col)</pre>
<pre>        Rhino.Print "V : " &amp; row</pre>
<pre></pre>
<pre>        'create points</pre>
<pre>        Dim u,v, x, y, z, n,nMax, arrPoints()</pre>
<pre></pre>
<pre>        'Find max value</pre>
<pre>        Dim aMax, aTemp, k</pre>
<pre>        ReDim aTemp(row*Ubound(col)-1)</pre>
<pre>        k = 0</pre>
<pre>        For v = 1 To row</pre>
<pre>               For u = 1 To Ubound(col)</pre>
<pre>                       aTemp(k) = CDbl(a(k))</pre>
<pre>                       k = k+1</pre>
<pre>               Next</pre>
<pre>        Next</pre>
<pre>        aMax = Rhino.SortNumbers(aTemp, False)</pre>
<pre></pre>
<pre>        'assign value to x,y,z</pre>
<pre>        n = 0</pre>
<pre>        nMax = row*Ubound(col)</pre>
<pre>        ReDim arrPoints(nMax-1)</pre>
<pre>        'Call Rhino.EnableRedraw(False)</pre>
<pre>        For v = 1 To row</pre>
<pre>               For u = 1 To Ubound(col)</pre>
<pre>                       'Scale the u v points or apply mathematical other functions to transform the points</pre>
<pre>                       x=10*u</pre>
<pre>                       y=10*v</pre>
<pre>                       z=(CDbl(a(n))/aMax(0)*50)-55</pre>
<pre>                       arrPoints(n) = array(x,y,z)</pre>
<pre>                       n = n+1</pre>
<pre>               Next</pre>
<pre>        Next</pre>
<pre></pre>
<pre>        Dim UVcount(1)</pre>
<pre>        UVcount(0) = Ubound(col)</pre>
<pre>        UVcount(1) = row</pre>
<pre>        If Ubound(col) &gt; 1 And row &gt; 1 Then</pre>
<pre>               Rhino.AddsrfPtGrid UVcount,arrPoints</pre>
<pre>        Else</pre>
<pre>               Rhino.Print "Cannot make surface"</pre>
<pre>        End If</pre>
<pre>        'Call Rhino.EnableRedraw(True)</pre>
<pre></pre>
<pre>        objFile.Close</pre>
<pre>        Set objFile = Nothing</pre>
<pre>        Set objFSO = Nothing</pre>
<pre></pre>
<pre>End Sub</pre>
<p>Once in Rhino, the infomation was altered via the mesh patch command in order to make a more legible surface</p>
<p>Results from Data:</p>
<p><a rel="attachment wp-att-752" href="http://legacy.iaacblog.com/2010/04/ecotect-%e2%80%93-mechanic-applications/2010-02-16-assignment6/"><img class="aligncenter size-full wp-image-752" src="http://legacy.iaacblog.com/wp-content/uploads/2010/04/2010-02-16-Assignment61.jpg" alt="" width="500" height="353" /></a><a rel="attachment wp-att-753" href="http://legacy.iaacblog.com/2010/04/ecotect-%e2%80%93-mechanic-applications/2010-02-16-assignment5/"><img class="aligncenter size-full wp-image-753" src="http://legacy.iaacblog.com/wp-content/uploads/2010/04/2010-02-16-Assignment51.jpg" alt="" width="500" height="353" /></a></p>
<p>Further Alterations:</p>
<p>The data currently shows the presence of bricks as valleys and the absence of bricks as peaks.  Further alterations to the script itself or to the surface in Rhino in order to reverse the values.  By doing so, this information can simulate what the brick composition may look like.</p>
<p><a rel="attachment wp-att-754" href="http://legacy.iaacblog.com/2010/04/ecotect-%e2%80%93-mechanic-applications/2010-02-16-assignment7/"><img class="aligncenter size-full wp-image-754" src="http://legacy.iaacblog.com/wp-content/uploads/2010/04/2010-02-16-Assignment71.jpg" alt="" width="500" height="353" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://legacy.iaacblog.com/blog/2010/ecotect-%e2%80%93-mechanic-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
