tag:blogger.com,1999:blog-70426707782496603202024-03-05T17:53:05.542+00:00Second Coming For Processing.pymonkstonehttp://www.blogger.com/profile/10339203885788088979noreply@blogger.comBlogger17125tag:blogger.com,1999:blog-7042670778249660320.post-61686704787289745382015-11-04T14:58:00.000+00:002015-11-04T15:32:52.430+00:00A Third Coming for processing.py (a little unexpected)Well it seem much kudos must go to Luca Damasco (Google Summer of Code student), the python mode has <a href="https://forum.processing.org/two/discussion/comment/54968/" target="_blank">returned for processing-3.0</a> . I've just playing with it and it seems to be it might be as well to adopt an approach similar to that I settled on for JRubyArt, and explicitly create a settings method as below, and to set the sketch title in setup:-
<style type="text/css"><!--
.syntax-NULL {
color: #000000;
}
.syntax-COMMENT1 {
color: #cc0000;
}
.syntax-COMMENT2 {
color: #ff8400;
}
.syntax-COMMENT3 {
color: #6600cc;
}
.syntax-COMMENT4 {
color: #cc6600;
}
.syntax-DIGIT {
color: #ff0000;
}
.syntax-FUNCTION {
color: #9966ff;
}
.syntax-INVALID {
background: #ffffcc;
color: #ff0066;
}
.syntax-KEYWORD1 {
color: #006699;
font-weight: bold;
}
.syntax-KEYWORD2 {
color: #009966;
font-weight: bold;
}
.syntax-KEYWORD3 {
color: #0099ff;
font-weight: bold;
}
.syntax-KEYWORD4 {
color: #66ccff;
font-weight: bold;
}
.syntax-LABEL {
color: #02b902;
}
.syntax-LITERAL1 {
color: #ff00cc;
}
.syntax-LITERAL2 {
color: #cc00cc;
}
.syntax-LITERAL3 {
color: #9900cc;
}
.syntax-LITERAL4 {
color: #6600cc;
}
.syntax-MARKUP {
color: #0000ff;
}
.syntax-OPERATOR {
color: #000000;
font-weight: bold;
}
.gutter {
background: #dbdbdb;
color: #000000;
border-right: 2px solid black ;
margin-right: 5px ;
}
.gutterH {
background: #dbdbdb;
color: #990066;
border-right: 2px solid black ;
margin-right: 5px ;
}
--></style>
<pre><span class="syntax0"><span class="gutter"> 1 </span><span class="syntax-LITERAL2">'''</span>
<span class="gutter"> 2 </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">A</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">wireframe</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">box</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">with</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">colored</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">edges</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">which</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">expands</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">and</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">contracts</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">according</span>
<span class="gutter"> 3 </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">to</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">time</span><span class="syntax-LITERAL2">-</span><span class="syntax-LITERAL2">of</span><span class="syntax-LITERAL2">-</span><span class="syntax-LITERAL2">day</span><span class="syntax-LITERAL2">.</span>
<span class="gutter"> 4 </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">An</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">original</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">implementation</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">of</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">*</span><span class="syntax-LITERAL2">hms</span><span class="syntax-LITERAL2">*</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">from</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">http</span><span class="syntax-LITERAL2">:</span><span class="syntax-LITERAL2">/</span><span class="syntax-LITERAL2">/</span><span class="syntax-LITERAL2">www</span><span class="syntax-LITERAL2">.</span><span class="syntax-LITERAL2">gysin</span><span class="syntax-LITERAL2">-</span><span class="syntax-LITERAL2">vanetti</span><span class="syntax-LITERAL2">.</span><span class="syntax-LITERAL2">com</span><span class="syntax-LITERAL2">/</span><span class="syntax-LITERAL2">hms</span>
<span class="gutterH"> 5 </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">(</span><span class="syntax-LITERAL2">C</span><span class="syntax-LITERAL2">)</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">Ben</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">Alkov</span><span class="syntax-LITERAL2">,</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">2014</span><span class="syntax-LITERAL2">,</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">licensed</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">as</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">APL</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">2</span><span class="syntax-LITERAL2">.</span><span class="syntax-LITERAL2">0</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">as</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">part</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">of</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">processing</span><span class="syntax-LITERAL2">.</span><span class="syntax-LITERAL2">py</span>
<span class="gutter"> 6 </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">(</span><span class="syntax-LITERAL2">https</span><span class="syntax-LITERAL2">:</span><span class="syntax-LITERAL2">/</span><span class="syntax-LITERAL2">/</span><span class="syntax-LITERAL2">github</span><span class="syntax-LITERAL2">.</span><span class="syntax-LITERAL2">com</span><span class="syntax-LITERAL2">/</span><span class="syntax-LITERAL2">jdf</span><span class="syntax-LITERAL2">/</span><span class="syntax-LITERAL2">processing</span><span class="syntax-LITERAL2">.</span><span class="syntax-LITERAL2">py</span><span class="syntax-LITERAL2">)</span><span class="syntax-LITERAL2">.</span>
<span class="gutter"> 7 </span><span class="syntax-LITERAL2">'''</span>
<span class="gutter"> 8 </span>
<span class="gutter"> 9 </span><span class="syntax-KEYWORD1">def</span> <span class="syntax-FUNCTION">settings</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">)</span><span class="syntax-KEYWORD1">:</span>
<span class="gutterH"> 10 </span> <span class="syntax-FUNCTION">size</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">500</span>, <span class="syntax-DIGIT">500</span>, P3D<span class="syntax-OPERATOR">)</span>
<span class="gutter"> 11 </span> <span class="syntax-FUNCTION">smooth</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">4</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 12 </span>
<span class="gutter"> 13 </span><span class="syntax-KEYWORD1">def</span> <span class="syntax-FUNCTION">setup</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">)</span><span class="syntax-KEYWORD1">:</span>
<span class="gutter"> 14 </span> <span class="syntax-KEYWORD1">global</span> fillCube, edgeCube
<span class="gutterH"> 15 </span> frame.<span class="syntax-FUNCTION">setTitle</span><span class="syntax-OPERATOR">(</span><span class="syntax-LITERAL1">"</span><span class="syntax-LITERAL1">Box</span><span class="syntax-LITERAL1"> </span><span class="syntax-LITERAL1">Clock</span><span class="syntax-LITERAL1">"</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 16 </span> <span class="syntax-FUNCTION">camera</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">0</span>, <span class="syntax-DIGIT">0</span>, <span class="syntax-DIGIT">100</span>,
<span class="gutter"> 17 </span> <span class="syntax-DIGIT">0</span>, <span class="syntax-DIGIT">0</span>, <span class="syntax-DIGIT">0</span>,
<span class="gutter"> 18 </span> <span class="syntax-DIGIT">0</span>, <span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">0</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 19 </span>
<span class="gutterH"> 20 </span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">Creating</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">a</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">**filled**</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">wireframe</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">cube</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">is</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">non-obvious.</span>
<span class="gutter"> 21 </span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">We</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">need</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">an</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">opaque</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">black</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">cube</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">inside</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">a</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">transparent</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">wireframe</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">cube.</span>
<span class="gutter"> 22 </span> fillCube <span class="syntax-OPERATOR">=</span> <span class="syntax-FUNCTION">createShape</span><span class="syntax-OPERATOR">(</span>BOX, <span class="syntax-DIGIT">2</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 23 </span> edgeCube <span class="syntax-OPERATOR">=</span> <span class="syntax-FUNCTION">makeEdgeCube</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 24 </span>
<span class="gutterH"> 25 </span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">The</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">fill</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">color</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">here</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">has</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">to</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">match</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">the</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">`background`</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">from</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">`draw`</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">in</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">order</span>
<span class="gutter"> 26 </span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">for</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">the</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">fill</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">cube</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">to</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">be</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">invisible.</span>
<span class="gutter"> 27 </span> fillCube.<span class="syntax-FUNCTION">setFill</span><span class="syntax-OPERATOR">(</span><span class="syntax-FUNCTION">color</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">10</span><span class="syntax-OPERATOR">)</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 28 </span>
<span class="gutter"> 29 </span>
<span class="gutterH"> 30 </span><span class="syntax-KEYWORD1">def</span> <span class="syntax-FUNCTION">draw</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">)</span><span class="syntax-KEYWORD1">:</span>
<span class="gutter"> 31 </span> <span class="syntax-FUNCTION">rotateX</span><span class="syntax-OPERATOR">(</span><span class="syntax-FUNCTION">sin</span><span class="syntax-OPERATOR">(</span>frameCount <span class="syntax-OPERATOR">*</span> <span class="syntax-DIGIT">0</span>.<span class="syntax-DIGIT">008</span><span class="syntax-OPERATOR">)</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 32 </span> <span class="syntax-FUNCTION">rotateY</span><span class="syntax-OPERATOR">(</span><span class="syntax-FUNCTION">cos</span><span class="syntax-OPERATOR">(</span>frameCount <span class="syntax-OPERATOR">*</span> <span class="syntax-DIGIT">0</span>.<span class="syntax-DIGIT">008</span><span class="syntax-OPERATOR">)</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 33 </span>
<span class="gutter"> 34 </span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">The</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">fill</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">color</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">here</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">has</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">to</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">match</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">the</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">`fillCube`'s</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">`setFill`</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">color</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">in</span>
<span class="gutterH"> 35 </span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">order</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">for</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">the</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">fill</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">cube</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">to</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">be</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">invisible.</span>
<span class="gutter"> 36 </span> <span class="syntax-FUNCTION">background</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">10</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 37 </span> <span class="syntax-FUNCTION">drawShape</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 38 </span>
<span class="gutter"> 39 </span>
<span class="gutterH"> 40 </span><span class="syntax-KEYWORD1">def</span> <span class="syntax-FUNCTION">drawShape</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">)</span><span class="syntax-KEYWORD1">:</span>
<span class="gutter"> 41 </span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">`map`;</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">"Re-maps</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">a</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">number</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">from</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">one</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">range</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">to</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">another."</span>
<span class="gutter"> 42 </span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">Scale</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">time</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">units</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">to</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">3D</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">coordinates.</span>
<span class="gutter"> 43 </span> x <span class="syntax-OPERATOR">=</span> <span class="syntax-KEYWORD2">map</span><span class="syntax-OPERATOR">(</span><span class="syntax-FUNCTION">second</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">)</span>, <span class="syntax-DIGIT">0</span>, <span class="syntax-DIGIT">59</span>, <span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">12</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 44 </span> y <span class="syntax-OPERATOR">=</span> <span class="syntax-KEYWORD2">map</span><span class="syntax-OPERATOR">(</span><span class="syntax-FUNCTION">minute</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">)</span>, <span class="syntax-DIGIT">0</span>, <span class="syntax-DIGIT">59</span>, <span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">12</span><span class="syntax-OPERATOR">)</span>
<span class="gutterH"> 45 </span> z <span class="syntax-OPERATOR">=</span> <span class="syntax-KEYWORD2">map</span><span class="syntax-OPERATOR">(</span><span class="syntax-FUNCTION">hour</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">)</span>, <span class="syntax-DIGIT">0</span>, <span class="syntax-DIGIT">23</span>, <span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">12</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 46 </span>
<span class="gutter"> 47 </span> <span class="syntax-FUNCTION">scale</span><span class="syntax-OPERATOR">(</span>x, y, z<span class="syntax-OPERATOR">)</span>
<span class="gutter"> 48 </span> <span class="syntax-FUNCTION">shape</span><span class="syntax-OPERATOR">(</span>fillCube, <span class="syntax-DIGIT">0</span>, <span class="syntax-DIGIT">0</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 49 </span> <span class="syntax-FUNCTION">shape</span><span class="syntax-OPERATOR">(</span>edgeCube, <span class="syntax-DIGIT">0</span>, <span class="syntax-DIGIT">0</span><span class="syntax-OPERATOR">)</span>
<span class="gutterH"> 50 </span>
<span class="gutter"> 51 </span>
<span class="gutter"> 52 </span><span class="syntax-KEYWORD1">def</span> <span class="syntax-FUNCTION">makeEdgeCube</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">)</span><span class="syntax-KEYWORD1">:</span>
<span class="gutter"> 53 </span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">Draw</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">a</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">2x2x2</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">transparent</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">cube</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">with</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">edges</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">colored</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">according</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">to</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">the</span>
<span class="gutter"> 54 </span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">current</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">time.</span>
<span class="gutterH"> 55 </span> Red <span class="syntax-OPERATOR">=</span> <span class="syntax-FUNCTION">color</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">255</span>, <span class="syntax-DIGIT">137</span>, <span class="syntax-DIGIT">95</span><span class="syntax-OPERATOR">)</span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">Seconds.</span>
<span class="gutter"> 56 </span> Green <span class="syntax-OPERATOR">=</span> <span class="syntax-FUNCTION">color</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">176</span>, <span class="syntax-DIGIT">255</span>, <span class="syntax-DIGIT">121</span><span class="syntax-OPERATOR">)</span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">Minutes.</span>
<span class="gutter"> 57 </span> Blue <span class="syntax-OPERATOR">=</span> <span class="syntax-FUNCTION">color</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">56</span>, <span class="syntax-DIGIT">76</span>, <span class="syntax-DIGIT">204</span><span class="syntax-OPERATOR">)</span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">Hours.</span>
<span class="gutter"> 58 </span> edgeCube <span class="syntax-OPERATOR">=</span> <span class="syntax-FUNCTION">createShape</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 59 </span> edgeCube.<span class="syntax-FUNCTION">beginShape</span><span class="syntax-OPERATOR">(</span>LINES<span class="syntax-OPERATOR">)</span>
<span class="gutterH"> 60 </span>
<span class="gutter"> 61 </span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">Seconds</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">-</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">lines</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">along</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">`x`.</span>
<span class="gutter"> 62 </span> edgeCube.<span class="syntax-FUNCTION">stroke</span><span class="syntax-OPERATOR">(</span>Red<span class="syntax-OPERATOR">)</span>
<span class="gutter"> 63 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 64 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutterH"> 65 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 66 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 67 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 68 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 69 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutterH"> 70 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 71 </span>
<span class="gutter"> 72 </span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">Minutes</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">-</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">lines</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">along</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">`y`.</span>
<span class="gutter"> 73 </span> edgeCube.<span class="syntax-FUNCTION">stroke</span><span class="syntax-OPERATOR">(</span>Green<span class="syntax-OPERATOR">)</span>
<span class="gutter"> 74 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutterH"> 75 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 76 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 77 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 78 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 79 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutterH"> 80 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 81 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 82 </span>
<span class="gutter"> 83 </span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">Hours</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">-</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">lines</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">along</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">`z`.</span>
<span class="gutter"> 84 </span> edgeCube.<span class="syntax-FUNCTION">stroke</span><span class="syntax-OPERATOR">(</span>Blue<span class="syntax-OPERATOR">)</span>
<span class="gutterH"> 85 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 86 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 87 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 88 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 89 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutterH"> 90 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 91 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 92 </span> edgeCube.<span class="syntax-FUNCTION">vertex</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">1</span>, <span class="syntax-DIGIT">1</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 93 </span> edgeCube.<span class="syntax-FUNCTION">endShape</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 94 </span> <span class="syntax-KEYWORD1">return</span> edgeCube
</span></pre>
</br></br>Static sketches including "size" as might be expected do not play too well.monkstonehttp://www.blogger.com/profile/10339203885788088979noreply@blogger.com0tag:blogger.com,1999:blog-7042670778249660320.post-15292106378033848942014-06-09T19:10:00.000+01:002014-06-09T19:33:49.545+01:00Testing recursion limits python mode in the processing idePython is well known for not dealing with recursion too well, it seems python mode in the processing mode is even worse:-<br/><br/>
<style type="text/css"><!--
.syntax-NULL {
color: #000000;
}
.syntax-COMMENT1 {
color: #cc0000;
}
.syntax-COMMENT2 {
color: #ff8400;
}
.syntax-COMMENT3 {
color: #6600cc;
}
.syntax-COMMENT4 {
color: #cc6600;
}
.syntax-DIGIT {
color: #ff0000;
}
.syntax-FUNCTION {
color: #9966ff;
}
.syntax-INVALID {
background: #ffffcc;
color: #ff0066;
}
.syntax-KEYWORD1 {
color: #006699;
font-weight: bold;
}
.syntax-KEYWORD2 {
color: #009966;
font-weight: bold;
}
.syntax-KEYWORD3 {
color: #0099ff;
font-weight: bold;
}
.syntax-KEYWORD4 {
color: #66ccff;
font-weight: bold;
}
.syntax-LABEL {
color: #02b902;
}
.syntax-LITERAL1 {
color: #ff00cc;
}
.syntax-LITERAL2 {
color: #cc00cc;
}
.syntax-LITERAL3 {
color: #9900cc;
}
.syntax-LITERAL4 {
color: #6600cc;
}
.syntax-MARKUP {
color: #0000ff;
}
.syntax-OPERATOR {
color: #000000;
font-weight: bold;
}
.gutter {
background: #dbdbdb;
color: #000000;
border-right: 2px solid black ;
margin-right: 5px ;
}
.gutterH {
background: #dbdbdb;
color: #990066;
border-right: 2px solid black ;
margin-right: 5px ;
}
--></style>
</head>
<body bgcolor="#ffffff">
<pre><span class="syntax0"><span class="gutter"> 1 </span><span class="syntax-LITERAL2">"""</span>
<span class="gutter"> 2 </span><span class="syntax-LITERAL2">spiral</span><span class="syntax-LITERAL2">.</span><span class="syntax-LITERAL2">pyde</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">python</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">mode</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">sketch</span>
<span class="gutter"> 3 </span><span class="syntax-LITERAL2">features</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">fairly</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">extreme</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">recursion</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">for</span>
<span class="gutter"> 4 </span><span class="syntax-LITERAL2">python</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">hence</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">we</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">try</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">increase</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">limit</span>
<span class="gutterH"> 5 </span><span class="syntax-LITERAL2">but</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">it</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">doesn</span><span class="syntax-LITERAL2">'</span><span class="syntax-LITERAL2">t</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">work</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">so</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">we</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">capture</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">error</span>
<span class="gutter"> 6 </span><span class="syntax-LITERAL2">"""</span>
<span class="gutter"> 7 </span>MAX_RECURSION <span class="syntax-OPERATOR">=</span> <span class="syntax-DIGIT">1000</span>
<span class="gutter"> 8 </span>
<span class="gutter"> 9 </span>
<span class="gutterH"> 10 </span><span class="syntax-KEYWORD1">def</span> <span class="syntax-FUNCTION">setup</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">)</span><span class="syntax-KEYWORD1">:</span>
<span class="gutter"> 11 </span> <span class="syntax-LITERAL2">"""</span>
<span class="gutter"> 12 </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">processing</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">setup</span>
<span class="gutter"> 13 </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">"""</span>
<span class="gutter"> 14 </span> <span class="syntax-FUNCTION">size</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">400</span>, <span class="syntax-DIGIT">400</span><span class="syntax-OPERATOR">)</span>
<span class="gutterH"> 15 </span> <span class="syntax-FUNCTION">translate</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">100</span>, <span class="syntax-DIGIT">330</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 16 </span> <span class="syntax-FUNCTION">rotate</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">0</span>.<span class="syntax-DIGIT">3</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 17 </span> <span class="syntax-FUNCTION">fill</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">255</span>, <span class="syntax-DIGIT">0</span>, <span class="syntax-DIGIT">0</span>, <span class="syntax-DIGIT">0</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 18 </span> <span class="syntax-FUNCTION">background</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">0</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 19 </span> <span class="syntax-FUNCTION">noStroke</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">)</span>
<span class="gutterH"> 20 </span> <span class="syntax-FUNCTION">smooth</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 21 </span> <span class="syntax-FUNCTION">fill</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">255</span>, <span class="syntax-DIGIT">0</span>, <span class="syntax-DIGIT">0</span>, <span class="syntax-DIGIT">20</span><span class="syntax-OPERATOR">)</span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">transparency</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">makes</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">for</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">almost</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">'3d'</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">look</span>
<span class="gutter"> 22 </span> <span class="syntax-KEYWORD1">import</span> sys <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">increase</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">recursion</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">limit</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">or</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">sketch</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">will</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">fail</span>
<span class="gutter"> 23 </span> sys.<span class="syntax-FUNCTION">setrecursionlimit</span><span class="syntax-OPERATOR">(</span>MAX_RECURSION<span class="syntax-OPERATOR">)</span>
<span class="gutter"> 24 </span> <span class="syntax-KEYWORD1">try</span><span class="syntax-KEYWORD1">:</span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">handle</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">potential</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">index</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">error</span>
<span class="gutterH"> 25 </span> <span class="syntax-FUNCTION">shell</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">-</span><span class="syntax-DIGIT">0</span>.<span class="syntax-DIGIT">008</span>, <span class="syntax-DIGIT">1</span>.<span class="syntax-DIGIT">5</span>, <span class="syntax-DIGIT">25</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 26 </span> <span class="syntax-KEYWORD1">except</span> <span class="syntax-KEYWORD3">RuntimeError</span><span class="syntax-KEYWORD1">:</span>
<span class="gutter"> 27 </span> <span class="syntax-KEYWORD1">print</span> <span class="syntax-LITERAL1">"</span><span class="syntax-LITERAL1">Sketch</span><span class="syntax-LITERAL1"> </span><span class="syntax-LITERAL1">exceeds</span><span class="syntax-LITERAL1"> </span><span class="syntax-LITERAL1">set</span><span class="syntax-LITERAL1"> </span><span class="syntax-LITERAL1">recursion</span><span class="syntax-LITERAL1"> </span><span class="syntax-LITERAL1">limit</span><span class="syntax-LITERAL1">"</span>
<span class="gutter"> 28 </span> <span class="syntax-KEYWORD1">else</span><span class="syntax-KEYWORD1">:</span>
<span class="gutter"> 29 </span> <span class="syntax-KEYWORD1">pass</span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">Sketch</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">finishes</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">before</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">recursion</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">limit</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">is</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">reached</span>
<span class="gutterH"> 30 </span>
<span class="gutter"> 31 </span>
<span class="gutter"> 32 </span><span class="syntax-KEYWORD1">def</span> <span class="syntax-FUNCTION">shell</span><span class="syntax-OPERATOR">(</span>rot, disp, sz<span class="syntax-OPERATOR">)</span><span class="syntax-KEYWORD1">:</span>
<span class="gutter"> 33 </span> <span class="syntax-LITERAL2">"""</span>
<span class="gutter"> 34 </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">Recursive</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">shell</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">shape</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">limited</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">by</span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">sz</span>
<span class="gutterH"> 35 </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2"> </span><span class="syntax-LITERAL2">"""</span>
<span class="gutter"> 36 </span> REDUCE <span class="syntax-OPERATOR">=</span> <span class="syntax-DIGIT">0</span>.<span class="syntax-DIGIT">999</span>
<span class="gutter"> 37 </span> MIN_SIZE <span class="syntax-OPERATOR">=</span> <span class="syntax-DIGIT">0.8</span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">about</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">right</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">for</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">processing</span>
<span class="gutter"> 38 </span> <span class="syntax-KEYWORD1">if</span> <span class="syntax-OPERATOR">(</span>sz <span class="syntax-OPERATOR">></span> MIN_SIZE<span class="syntax-OPERATOR">)</span><span class="syntax-KEYWORD1">:</span>
<span class="gutter"> 39 </span> sz <span class="syntax-OPERATOR">*</span><span class="syntax-OPERATOR">=</span> REDUCE
<span class="gutterH"> 40 </span> disp <span class="syntax-OPERATOR">*</span><span class="syntax-OPERATOR">=</span> REDUCE
<span class="gutter"> 41 </span> <span class="syntax-FUNCTION">translate</span><span class="syntax-OPERATOR">(</span>disp, <span class="syntax-DIGIT">0</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 42 </span> <span class="syntax-FUNCTION">rotate</span><span class="syntax-OPERATOR">(</span>rot<span class="syntax-OPERATOR">)</span>
<span class="gutter"> 43 </span> <span class="syntax-FUNCTION">ellipse</span><span class="syntax-OPERATOR">(</span>disp, <span class="syntax-DIGIT">0</span>, sz, sz<span class="syntax-OPERATOR">)</span>
<span class="gutter"> 44 </span> <span class="syntax-KEYWORD1">return</span> <span class="syntax-FUNCTION">shell</span><span class="syntax-OPERATOR">(</span>rot, disp, sz<span class="syntax-OPERATOR">)</span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">recursive</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">call</span>
<span class="gutterH"> 45 </span> <span class="syntax-KEYWORD1">else</span><span class="syntax-KEYWORD1">:</span>
<span class="gutter"> 46 </span> <span class="syntax-KEYWORD1">return</span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">break</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">recursive</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">loop</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">on</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">size</span>
<span class="gutter"> 47 </span>
</span></pre><br/><br/>To get python syntax highlighting in jEdit with the *.pyde file add the following to the mode catalog:-
<pre><span class="syntax0"><span class="gutter"> 1 </span><span class="syntax-KEYWORD3"><?</span><span class="syntax-KEYWORD3">xml</span><span class="syntax-KEYWORD3"> </span><span class="syntax-KEYWORD3">version="1.0"?</span><span class="syntax-KEYWORD3">></span>
<span class="gutter"> 2 </span><span class="syntax-KEYWORD2"><!</span><span class="syntax-KEYWORD2">DOCTYPE</span><span class="syntax-KEYWORD2"> </span><span class="syntax-KEYWORD2">MODES</span><span class="syntax-KEYWORD2"> </span><span class="syntax-KEYWORD2">SYSTEM</span><span class="syntax-KEYWORD2"> </span><span class="syntax-LITERAL1">"</span><span class="syntax-LITERAL1">catalog.dtd</span><span class="syntax-LITERAL1">"</span><span class="syntax-KEYWORD2">></span>
<span class="gutter"> 3 </span>
<span class="gutter"> 4 </span><span class="syntax-MARKUP"><</span><span class="syntax-MARKUP">MODES</span><span class="syntax-MARKUP">></span>
<span class="gutterH"> 5 </span>
<span class="gutter"> 6 </span><span class="syntax-COMMENT1"><!--</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">Add</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">lines</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">like</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">the</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">following,</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">one</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">for</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">each</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">edit</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">mode</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">you</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">add:</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">--></span>
<span class="gutter"> 7 </span><span class="syntax-COMMENT1"><!--</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1"><MODE</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">NAME="foo"</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">FILE="foo.xml"</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">FILE_NAME_GLOB="*.foo"</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">/></span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">--></span>
<span class="gutter"> 8 </span>
<span class="gutter"> 9 </span><span class="syntax-MARKUP"><</span><span class="syntax-MARKUP">MODE</span><span class="syntax-MARKUP"> </span><span class="syntax-MARKUP">NAME</span><span class="syntax-MARKUP">=</span><span class="syntax-LITERAL1">"</span><span class="syntax-LITERAL1">processing</span><span class="syntax-LITERAL1">.</span><span class="syntax-LITERAL1">py</span><span class="syntax-LITERAL1">"</span><span class="syntax-MARKUP"> </span><span class="syntax-MARKUP">FILE</span><span class="syntax-MARKUP">=</span><span class="syntax-LITERAL1">"</span><span class="syntax-LITERAL1">python</span><span class="syntax-LITERAL1">.</span><span class="syntax-LITERAL1">xml</span><span class="syntax-LITERAL1">"</span><span class="syntax-MARKUP"> </span><span class="syntax-MARKUP">FILE_NAME_GLOB</span><span class="syntax-MARKUP">=</span><span class="syntax-LITERAL1">"</span><span class="syntax-LITERAL1">*</span><span class="syntax-LITERAL1">.</span><span class="syntax-LITERAL1">pyde</span><span class="syntax-LITERAL1">"</span><span class="syntax-MARKUP"> </span><span class="syntax-MARKUP">/</span><span class="syntax-MARKUP">></span>
<span class="gutterH"> 10 </span><span class="syntax-MARKUP"><</span><span class="syntax-MARKUP">/</span><span class="syntax-MARKUP">MODES</span><span class="syntax-MARKUP">></span>
</span></pre> monkstonehttp://www.blogger.com/profile/10339203885788088979noreply@blogger.com0tag:blogger.com,1999:blog-7042670778249660320.post-77533796736445110192014-06-09T11:50:00.000+01:002014-06-10T10:07:09.392+01:00The latest way to import a java library processing python modeWhat you need to do is place the library folder (from vanilla processing) in a libraries folder (under PythonMode), on linux this is sketchbook/modes/PythonMode/libraries/peasy/library/peasycam.jar.
The latest python processing way of calling libary is as for vanilla processing to use the processing menu add library method, which adds the following to your sketch <b>add_library('peasycam')</b>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhceEkn5hyphenhyphen1GpTX71RTgcbVVbCbzOvu8J7EDNaDOSzx-_KpX_n-P5pcjmTkI5Suc-pSc_u0xWHCrEqsFpiTyEO4pKEbxGq-GEaGLg7TRpQXEhZnVWNZrQeCcXN712PBHDRWgew4GQclbUJd/s1600/python_mode.png" imageanchor="1" ><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhceEkn5hyphenhyphen1GpTX71RTgcbVVbCbzOvu8J7EDNaDOSzx-_KpX_n-P5pcjmTkI5Suc-pSc_u0xWHCrEqsFpiTyEO4pKEbxGq-GEaGLg7TRpQXEhZnVWNZrQeCcXN712PBHDRWgew4GQclbUJd/s640/python_mode.png" /></a>
<br/><br/><br/><br/><br/><br/><br/><br/>
I have since updated many more of my <a href="https://github.com/monkstone/processing.py-examples/tree/mode">processing.py examples</a> to run using the latest python mode in the processing ide.monkstonehttp://www.blogger.com/profile/10339203885788088979noreply@blogger.com2tag:blogger.com,1999:blog-7042670778249660320.post-8131684646003520602014-04-21T16:56:00.000+01:002014-04-22T19:29:18.723+01:00Running hilbert fractal sketch in the processing ideHere is an example of a python sketch running from the processing ide. The main applet file has the <b>.pyde</b> extension whereas other file can have the regular <b>.py</b> extension.
the grammar file gets compiled and stored locally <b>grammar$py.class</b>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilDABkjFXSWMRrwy_FwqK7U4yquo3ZlMd_LKKr_GrD5MXVXeMfSDqmzhjNQrm7Ibdj6JguNUbN311vhLuhFwnhZEJExTMlwNzOqtD2d5jcyccPgUvoknMSC6lE-ga3kZ24Ir9Zw24HHKRf/s1600/rod_hilbert.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilDABkjFXSWMRrwy_FwqK7U4yquo3ZlMd_LKKr_GrD5MXVXeMfSDqmzhjNQrm7Ibdj6JguNUbN311vhLuhFwnhZEJExTMlwNzOqtD2d5jcyccPgUvoknMSC6lE-ga3kZ24Ir9Zw24HHKRf/s640/rod_hilbert.png" /></a></div>
<br/><br/>
Performance is acceptable (significantly less good than <a href="https://github.com/jashkenas/ruby-processing">ruby-processing</a>), much better than <a href="http://code.google.com/p/pyprocessing/">pyprocessing</a>. For more info on scope of processing.py see <a href="https://github.com/jdf/processing.py/wiki/Python-Mode-for-Processing:-FAQ">FAQ here</a>. In summary no SciPy no Numpy but yes to java libraries.monkstonehttp://www.blogger.com/profile/10339203885788088979noreply@blogger.com0tag:blogger.com,1999:blog-7042670778249660320.post-38406339350008340392014-04-04T15:22:00.003+01:002014-06-08T12:04:21.954+01:00Is the latest realisation for processing.py<span style="color: red;">Upate 8 June 2014 </span><br />
Some people (in the academic world, Golan Levin for one) seem to be pretty excited about the python mode in the processing ide, and this time it is being developed by Jonathan Feinberg.
<br />
<blockquote class="twitter-tweet" lang="en">
This week, <a href="https://twitter.com/pheinberg">@pheinberg</a> is ensconced in the quiet <a href="https://twitter.com/fathominfo">@fathominfo</a> studio and is up to no good. Python + Processing? Mmm! <a href="http://t.co/0GE4BIexyB">pic.twitter.com/0GE4BIexyB</a><br />
— Ben Fry (@ben_fry) <a href="https://twitter.com/ben_fry/statuses/451709804130480129">April 3, 2014</a></blockquote>
<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script>
Before you know it there will be a <a href="https://www.blogger.com/null" ref="http://learning-ruby-processing.blogspot.co.uk/2014/06/tyfkda-san-has-made-some-progress.html">ruby mode for processing</a>. May'be that might help ruby get some traction in the academic world (where "Windows" reigns supreme, even in bloody China, but probably not in Brazil). Ruby has been notoriously unix centric (and benefits from the rational file structure and many damn useful unix tools) and for that reason some people find it difficult to use ruby on windows.<br />
<br />
There are significant limitations to working in the processing ide with both languages (and even java processing for that matter). Which is why Jonathan is still offering a standalone processing.py.<br />
<a href="https://github.com/jashkenas/ruby-processing">Ruby-processing</a> is quite heavily embedded in the ruby eco-system (all jruby compatible gems are available, in addition to most java and processing libraries), and is likely to remain somewhat separate from the ruby mode in the processing ide (which is currently in development by <a href="https://github.com/tyfkda/processing-ruby-mode">Tyfkda</a>).<br />
monkstonehttp://www.blogger.com/profile/10339203885788088979noreply@blogger.com0tag:blogger.com,1999:blog-7042670778249660320.post-60204002495025910952013-09-11T13:49:00.000+01:002013-09-11T14:34:03.980+01:00Macro and Console Commando Files for jEditNow you can use jEdit as your ide for processing.py development get the macro and commando files <a href="http://community.jedit.org/?q=node/view/37868">here</a> and <a href="http://community.jedit.org/?q=bookmarks/add/37867">here</a>. In my previous posts I included use of a range of processing libraries (toxi, generative design etc). Jonathan Feinberg wouldn't touch them with a barge pole being vehemently anti GPL. However he has made it relatively easy to use the contributed libraries just copy them to processing.py libraries folder (<i>pity he couldn't pick them up from where they get installed by regular processing as we do in ruby-processing</i>). Proof that it all works here for code see previous posting or get it from github <a href="https://github.com/monkstone/processing.py-examples">here</a>:-
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjIdx_xOR-zgWqFuYaWh4FNzAAEHBUPI1MuRSfOALS1HvcyR4LTvychxkYC1VtOD1dXiyPuQ_DxcDCTiuQHTxoT6TWwlGV0LfQrFIGRVHLCgtBQhbHKyZA8Ow5O-rDg1EHNV8voDPZhJOT/s1600/python.png" imageanchor="1" ><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjIdx_xOR-zgWqFuYaWh4FNzAAEHBUPI1MuRSfOALS1HvcyR4LTvychxkYC1VtOD1dXiyPuQ_DxcDCTiuQHTxoT6TWwlGV0LfQrFIGRVHLCgtBQhbHKyZA8Ow5O-rDg1EHNV8voDPZhJOT/s640/python.png" /></a>
monkstonehttp://www.blogger.com/profile/10339203885788088979noreply@blogger.com0tag:blogger.com,1999:blog-7042670778249660320.post-28178977087715748832013-04-06T11:47:00.001+01:002013-04-06T13:18:54.729+01:00Using retained shape for performance in processing.py<pre><font color="#000000"><span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 1 </font></span><font color="#990033">#</font><font color="#990033"> </font><font color="#990033">CubicGridRetained</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 2 </font></span><font color="#990033">#</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 3 </font></span><font color="#990033">#</font><font color="#990033"> </font><font color="#990033">You</font><font color="#990033"> </font><font color="#990033">may</font><font color="#990033"> </font><font color="#990033">need</font><font color="#990033"> </font><font color="#990033">to</font><font color="#990033"> </font><font color="#990033">increase</font><font color="#990033"> </font><font color="#990033">the</font><font color="#990033"> </font><font color="#990033">maximum</font><font color="#990033"> </font><font color="#990033">available</font><font color="#990033"> </font><font color="#990033">memory</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 4 </font></span><font color="#990033">#</font><font color="#990033"> </font><font color="#990033">by</font><font color="#990033"> </font><font color="#990033">passing</font><font color="#990033"> </font><font color="#990033">-mx1000m</font><font color="#990033"> </font><font color="#990033">to</font><font color="#990033"> </font><font color="#990033">jvm</font><font color="#990033"> </font><font color="#990033">(in</font><font color="#990033"> </font><font color="#990033">run</font><font color="#990033"> </font><font color="#990033">script</font><font color="#990033"> </font><font color="#990033">if</font><font color="#990033"> </font><font color="#990033">you</font><font color="#990033"> </font><font color="#990033">use</font><font color="#990033"> </font><font color="#990033">that)</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 5 </font></span><font color="#990033">#</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 6 </font></span>BOX_SIZE <font color="#990099"><strong>=</strong></font> <font color="#ff0000">20</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 7 </font></span>MARGIN <font color="#990099"><strong>=</strong></font> BOX_SIZE <font color="#990099"><strong>*</strong></font> <font color="#ff0000">2</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 8 </font></span>DEPTH <font color="#990099"><strong>=</strong></font> <font color="#ff0000">400</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 9 </font></span>boxFill <font color="#990099"><strong>=</strong></font> <font color="#cc6600"><strong>None</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 10 </font></span>grid <font color="#990099"><strong>=</strong></font> <font color="#cc6600"><strong>None</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 11 </font></span>fcount <font color="#990099"><strong>=</strong></font> <font color="#ff0000">0</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 12 </font></span>lastm <font color="#990099"><strong>=</strong></font> <font color="#ff0000">0</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 13 </font></span>frate <font color="#990099"><strong>=</strong></font> <font color="#ff0000">0</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 14 </font></span>FINT <font color="#990099"><strong>=</strong></font> <font color="#ff0000">3</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 15 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 16 </font></span><font color="#006699"><strong>def</strong></font> <font color="#9966ff">setup</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font><font color="#006699"><strong>:</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 17 </font></span> <font color="#9966ff">size</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">640</font>, <font color="#ff0000">360</font>, P3D<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 18 </font></span> <font color="#9966ff">frameRate</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">60</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 19 </font></span> <font color="#9966ff">noSmooth</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 20 </font></span> <font color="#9966ff">noStroke</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 21 </font></span> <font color="#006699"><strong>global</strong></font> grid
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 22 </font></span> grid <font color="#990099"><strong>=</strong></font> <font color="#9966ff">createShape</font><font color="#990099"><strong>(</strong></font>GROUP<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 23 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 24 </font></span> <font color="#990033">#</font><font color="#990033"> </font><font color="#990033">Build</font><font color="#990033"> </font><font color="#990033">grid</font><font color="#990033"> </font><font color="#990033">using</font><font color="#990033"> </font><font color="#990033">multiple</font><font color="#990033"> </font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 25 </font></span> <font color="#006699"><strong>for</strong></font> i <font color="#006699"><strong>in</strong></font> <font color="#009966"><strong>range</strong></font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>-</strong></font>DEPTH <font color="#990099"><strong>/</strong></font> <font color="#ff0000">2</font> <font color="#990099"><strong>+</strong></font> MARGIN, DEPTH <font color="#990099"><strong>/</strong></font> <font color="#ff0000">2</font> <font color="#990099"><strong>-</strong></font> MARGIN, BOX_SIZE<font color="#990099"><strong>)</strong></font><font color="#006699"><strong>:</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 26 </font></span> <font color="#006699"><strong>for</strong></font> j <font color="#006699"><strong>in</strong></font> <font color="#009966"><strong>range</strong></font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>-</strong></font>height <font color="#990099"><strong>+</strong></font> MARGIN, height <font color="#990099"><strong>-</strong></font> MARGIN, BOX_SIZE<font color="#990099"><strong>)</strong></font><font color="#006699"><strong>:</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 27 </font></span> <font color="#006699"><strong>for</strong></font> k <font color="#006699"><strong>in</strong></font> <font color="#009966"><strong>range</strong></font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>-</strong></font>width <font color="#990099"><strong>+</strong></font> MARGIN, width <font color="#990099"><strong>-</strong></font> MARGIN, BOX_SIZE<font color="#990099"><strong>)</strong></font><font color="#006699"><strong>:</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 28 </font></span> <font color="#990033">#</font><font color="#990033"> </font><font color="#990033">Base</font><font color="#990033"> </font><font color="#990033">fill</font><font color="#990033"> </font><font color="#990033">color</font><font color="#990033"> </font><font color="#990033">on</font><font color="#990033"> </font><font color="#990033">counter</font><font color="#990033"> </font><font color="#990033">values,</font><font color="#990033"> </font><font color="#990033">abs</font><font color="#990033"> </font><font color="#990033">function</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 29 </font></span> <font color="#990033">#</font><font color="#990033"> </font><font color="#990033">ensures</font><font color="#990033"> </font><font color="#990033">values</font><font color="#990033"> </font><font color="#990033">stay</font><font color="#990033"> </font><font color="#990033">within</font><font color="#990033"> </font><font color="#990033">legal</font><font color="#990033"> </font><font color="#990033">range</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 30 </font></span> boxFill <font color="#990099"><strong>=</strong></font> <font color="#9966ff">color</font><font color="#990099"><strong>(</strong></font><font color="#009966"><strong>abs</strong></font><font color="#990099"><strong>(</strong></font>i<font color="#990099"><strong>)</strong></font>, <font color="#009966"><strong>abs</strong></font><font color="#990099"><strong>(</strong></font>j<font color="#990099"><strong>)</strong></font>, <font color="#009966"><strong>abs</strong></font><font color="#990099"><strong>(</strong></font>k<font color="#990099"><strong>)</strong></font>, <font color="#ff0000">50</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 31 </font></span> sz <font color="#990099"><strong>=</strong></font> [BOX_SIZE, BOX_SIZE, BOX_SIZE]
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 32 </font></span> cube <font color="#990099"><strong>=</strong></font> <font color="#9966ff">createShape</font><font color="#990099"><strong>(</strong></font>BOX, sz<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 33 </font></span> cube.<font color="#9966ff">setFill</font><font color="#990099"><strong>(</strong></font>boxFill<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 34 </font></span> cube.<font color="#9966ff">translate</font><font color="#990099"><strong>(</strong></font>k, j, i<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 35 </font></span> grid.<font color="#9966ff">addChild</font><font color="#990099"><strong>(</strong></font>cube<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 36 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 37 </font></span><font color="#006699"><strong>def</strong></font> <font color="#9966ff">draw</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font><font color="#006699"><strong>:</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 38 </font></span> <font color="#9966ff">background</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">255</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 39 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 40 </font></span> <font color="#9966ff">hint</font><font color="#990099"><strong>(</strong></font>DISABLE_DEPTH_TEST<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 41 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 42 </font></span> <font color="#990033">#</font><font color="#990033"> </font><font color="#990033">Center</font><font color="#990033"> </font><font color="#990033">and</font><font color="#990033"> </font><font color="#990033">spin</font><font color="#990033"> </font><font color="#990033">grid</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 43 </font></span> <font color="#9966ff">pushMatrix</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 44 </font></span> <font color="#9966ff">translate</font><font color="#990099"><strong>(</strong></font>width <font color="#990099"><strong>/</strong></font> <font color="#ff0000">2</font>, height <font color="#990099"><strong>/</strong></font> <font color="#ff0000">2</font>, <font color="#990099"><strong>-</strong></font>DEPTH<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 45 </font></span> <font color="#9966ff">rotateY</font><font color="#990099"><strong>(</strong></font>frameCount <font color="#990099"><strong>*</strong></font> <font color="#ff0000">0</font>.<font color="#ff0000">01</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 46 </font></span> <font color="#9966ff">rotateX</font><font color="#990099"><strong>(</strong></font>frameCount <font color="#990099"><strong>*</strong></font> <font color="#ff0000">0</font>.<font color="#ff0000">01</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 47 </font></span> <font color="#006699"><strong>global</strong></font> grid
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 48 </font></span> <font color="#9966ff">shape</font><font color="#990099"><strong>(</strong></font>grid<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 49 </font></span> <font color="#9966ff">popMatrix</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 50 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 51 </font></span> <font color="#9966ff">hint</font><font color="#990099"><strong>(</strong></font>ENABLE_DEPTH_TEST<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 52 </font></span> <font color="#006699"><strong>global</strong></font> fcount, lastm, frate
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 53 </font></span> fcount <font color="#990099"><strong>+</strong></font><font color="#990099"><strong>=</strong></font> <font color="#ff0000">1</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 54 </font></span> m <font color="#990099"><strong>=</strong></font> <font color="#9966ff">millis</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 55 </font></span> <font color="#006699"><strong>if</strong></font> <font color="#990099"><strong>(</strong></font>m <font color="#990099"><strong>-</strong></font> lastm <font color="#990099"><strong>></strong></font> <font color="#ff0000">1000</font> <font color="#990099"><strong>*</strong></font> FINT<font color="#990099"><strong>)</strong></font><font color="#006699"><strong>:</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 56 </font></span> frate <font color="#990099"><strong>=</strong></font> <font color="#009966"><strong>float</strong></font><font color="#990099"><strong>(</strong></font>fcount<font color="#990099"><strong>)</strong></font> <font color="#990099"><strong>/</strong></font> FINT
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 57 </font></span> fcount <font color="#990099"><strong>=</strong></font> <font color="#ff0000">0</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 58 </font></span> lastm <font color="#990099"><strong>=</strong></font> m
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 59 </font></span> <font color="#006699"><strong>print</strong></font><font color="#990099"><strong>(</strong></font><font color="#cd8f8f">"</font><font color="#cd8f8f">fps</font><font color="#cd8f8f">:</font><font color="#cd8f8f"> </font><font color="#6600cc">%d</font><font color="#cd8f8f">"</font> <font color="#990099"><strong>%</strong></font> frate<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 60 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 61 </font></span> <font color="#9966ff">fill</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">0</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 62 </font></span> <font color="#9966ff">text</font><font color="#990099"><strong>(</strong></font><font color="#cd8f8f">"</font><font color="#cd8f8f">fps</font><font color="#cd8f8f">:</font><font color="#cd8f8f"> </font><font color="#6600cc">%d</font><font color="#cd8f8f">"</font> <font color="#990099"><strong>%</strong></font> frate, <font color="#ff0000">10</font>, <font color="#ff0000">20</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 63 </font></span>
</font></pre>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhy_4I-Qhix3ogoEKCtVZvJMJL4lU8sVWYfjteOaGdoPrX4sUOxMvDNwdbKl4tR598uCan6Gx_nJksX2YuO6UG8Tq-iIH727rs7Xvmkk_N8OCk7arFwLPVLua5oaxhFQgy1hM8cX5t7eOo/s1600/retained.png" imageanchor="1" ><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhy_4I-Qhix3ogoEKCtVZvJMJL4lU8sVWYfjteOaGdoPrX4sUOxMvDNwdbKl4tR598uCan6Gx_nJksX2YuO6UG8Tq-iIH727rs7Xvmkk_N8OCk7arFwLPVLua5oaxhFQgy1hM8cX5t7eOo/s320/retained.png" /></a>monkstonehttp://www.blogger.com/profile/10339203885788088979noreply@blogger.com0tag:blogger.com,1999:blog-7042670778249660320.post-22997968220422153222013-04-06T08:44:00.000+01:002013-04-06T09:39:48.956+01:00Processing.py now updatedThanks to work by <a href="https://github.com/ralfbiedert/processing.py">Ralf Biedert</a> processing.py has recently been update to use jython-2.7b1 and processing-2.0b8. It might be interesting to follow his fork in the meantime it has been pulled into the original by Jonathan Feinberg. So you can even update it yourself to the development version of vanilla processing if you wish (strange thing is why opengl is still kept in libraries folder instead of alongside core as P2D and P3D are both rendered using opengl). Here is another Shader example translated to processing.py.
<style type="text/css"><!--
.syntax-NULL {
color: #000000;
}
.syntax-COMMENT1 {
color: #009900;
font-style: italic;
}
.syntax-COMMENT2 {
color: #0099cc;
font-style: italic;
}
.syntax-COMMENT3 {
color: #6600cc;
}
.syntax-COMMENT4 {
color: #cc6600;
}
.syntax-DIGIT {
color: #993300;
}
.syntax-FUNCTION {
color: #006633;
}
.syntax-INVALID {
color: #ff0000;
font-weight: bold;
}
.syntax-KEYWORD1 {
color: #0033cc;
font-weight: bold;
}
.syntax-KEYWORD2 {
color: #ce3333;
font-weight: bold;
}
.syntax-KEYWORD3 {
color: #660066;
font-weight: bold;
}
.syntax-KEYWORD4 {
color: #66ccff;
font-weight: bold;
}
.syntax-LABEL {
color: #990033;
font-weight: bold;
font-style: italic;
}
.syntax-LITERAL1 {
color: #878787;
font-weight: bold;
}
.syntax-LITERAL2 {
color: #e86a18;
}
.syntax-LITERAL3 {
color: #9900cc;
}
.syntax-LITERAL4 {
color: #6600cc;
}
.syntax-MARKUP {
color: #0099cc;
}
.syntax-OPERATOR {
color: #003399;
font-weight: bold;
}
.gutter {
background: #fbfcec;
color: #71abe5;
border-right: 2px solid black ;
margin-right: 5px ;
}
.gutterH {
background: #fbfcec;
color: #000000;
border-right: 2px solid black ;
margin-right: 5px ;
}
--></style>
<body bgcolor="#f6f6f6">
<pre><span class="syntax0"><span class="gutter"> 1 </span>monjori <span class="syntax-OPERATOR">=</span> <span class="syntax-KEYWORD3">None</span>
<span class="gutter"> 2 </span>
<span class="gutter"> 3 </span><span class="syntax-KEYWORD1">def</span> <span class="syntax-FUNCTION">setup</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">)</span><span class="syntax-KEYWORD1">:</span>
<span class="gutter"> 4 </span> <span class="syntax-FUNCTION">size</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">640</span>, <span class="syntax-DIGIT">360</span>, P2D<span class="syntax-OPERATOR">)</span>
<span class="gutterH"> 5 </span> <span class="syntax-FUNCTION">noStroke</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 6 </span> <span class="syntax-KEYWORD1">global</span> monjori
<span class="gutter"> 7 </span> monjori <span class="syntax-OPERATOR">=</span> <span class="syntax-FUNCTION">loadShader</span><span class="syntax-OPERATOR">(</span><span class="syntax-LITERAL1">"</span><span class="syntax-LITERAL1">monjori</span><span class="syntax-LITERAL1">.</span><span class="syntax-LITERAL1">glsl</span><span class="syntax-LITERAL1">"</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 8 </span> monjori.<span class="syntax-KEYWORD2">set</span><span class="syntax-OPERATOR">(</span><span class="syntax-LITERAL1">"</span><span class="syntax-LITERAL1">resolution</span><span class="syntax-LITERAL1">"</span>, <span class="syntax-KEYWORD2">float</span><span class="syntax-OPERATOR">(</span>width<span class="syntax-OPERATOR">)</span>, <span class="syntax-KEYWORD2">float</span><span class="syntax-OPERATOR">(</span>height<span class="syntax-OPERATOR">)</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 9 </span>
<span class="gutterH"> 10 </span>
<span class="gutter"> 11 </span><span class="syntax-KEYWORD1">def</span> <span class="syntax-FUNCTION">draw</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">)</span><span class="syntax-KEYWORD1">:</span>
<span class="gutter"> 12 </span> monjori.<span class="syntax-KEYWORD2">set</span><span class="syntax-OPERATOR">(</span><span class="syntax-LITERAL1">"</span><span class="syntax-LITERAL1">time</span><span class="syntax-LITERAL1">"</span>, <span class="syntax-FUNCTION">millis</span><span class="syntax-OPERATOR">(</span><span class="syntax-OPERATOR">)</span> <span class="syntax-OPERATOR">/</span> <span class="syntax-DIGIT">1000</span>.<span class="syntax-DIGIT">0</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 13 </span> <span class="syntax-FUNCTION">shader</span><span class="syntax-OPERATOR">(</span>monjori<span class="syntax-OPERATOR">)</span>
<span class="gutter"> 14 </span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">The</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">rect</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">is</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">needed</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">to</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">make</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">the</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">fragment</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">shader</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">go</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">through</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">every</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">pixel</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">of</span>
<span class="gutterH"> 15 </span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">the</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">screen,</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">but</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">is</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">not</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">used</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">for</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">anything</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">else</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">since</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">the</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">rendering</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">is</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">entirely</span>
<span class="gutter"> 16 </span> <span class="syntax-COMMENT1">#</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">generated</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">by</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">the</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1">shader.</span><span class="syntax-COMMENT1"> </span><span class="syntax-COMMENT1"> </span>
<span class="gutter"> 17 </span> <span class="syntax-FUNCTION">fill</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">0</span><span class="syntax-OPERATOR">)</span>
<span class="gutter"> 18 </span> <span class="syntax-FUNCTION">rect</span><span class="syntax-OPERATOR">(</span><span class="syntax-DIGIT">0</span>, <span class="syntax-DIGIT">0</span>, width, height<span class="syntax-OPERATOR">)</span>
</span></pre>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwz1CrWnG2hA-9AHD1QqXZe_276llhoxjANZsZpmvELnEmZHBUrMvevP12GJx_zlC2qHytqSh94cUA7qAzkm7CHq7nySqlYXMArbaZW-BqAR_FbL_uWbZiyn0lMaAiWaWsrA8ZSXl1new/s1600/monjori.png" imageanchor="1" ><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwz1CrWnG2hA-9AHD1QqXZe_276llhoxjANZsZpmvELnEmZHBUrMvevP12GJx_zlC2qHytqSh94cUA7qAzkm7CHq7nySqlYXMArbaZW-BqAR_FbL_uWbZiyn0lMaAiWaWsrA8ZSXl1new/s320/monjori.png" /></a>monkstonehttp://www.blogger.com/profile/10339203885788088979noreply@blogger.com0tag:blogger.com,1999:blog-7042670778249660320.post-87584423230199915222012-11-30T13:51:00.000+00:002012-11-30T13:51:48.638+00:00Getting Slightly More Up To DateThe released version of jython is languishing at 2.5.2 (I suspect the jython version number might have some sort of relationship to the version of python supported?). This is likely the case because I was surprised when processing.py did not support "string".format(i). Out of interest I recompiled processing.py wth jython-2.7.2a2 and "string".format is supported. So going forward I intend to use only this or more recent version of jython, since regular python is moving toward version 3.4 (a step change ahead) seemingly some python 3.0 goodness will be back-ported to 2.7 so by the time jython-2.7 is released it will be somewhat more compatible.monkstonehttp://www.blogger.com/profile/10339203885788088979noreply@blogger.com0tag:blogger.com,1999:blog-7042670778249660320.post-2499971923691363492012-11-29T18:25:00.000+00:002012-11-29T19:16:25.559+00:00Gray Scott Diffusion (Toxiclibs and Processing.py)<pre><span style="color: black;"><span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 1 </span></span><span style="color: #cc6600;">"""</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 2 </span></span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">p</span><span style="color: #cc6600;">></span><span style="color: #cc6600;">GrayScottToneMap</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">shows</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">how</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">to</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">use</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">ColorGradient</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">&</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">ToneMap</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">classes</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">of</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 3 </span></span><span style="color: #cc6600;">colorutils</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">package</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">to</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">create</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">a</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">tone</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">map</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">for</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">rendering</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">results</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">of</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 4 </span></span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Gray</span><span style="color: #cc6600;">-</span><span style="color: #cc6600;">Scott</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">reaction</span><span style="color: #cc6600;">-</span><span style="color: #cc6600;">diffusion</span><span style="color: #cc6600;">.</span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">p</span><span style="color: #cc6600;">></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 5 </span></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 6 </span></span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">p</span><span style="color: #cc6600;">></span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">strong</span><span style="color: #cc6600;">></span><span style="color: #cc6600;">Usage</span><span style="color: #cc6600;">:</span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">strong</span><span style="color: #cc6600;">></span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">ul</span><span style="color: #cc6600;">></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 7 </span></span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">li</span><span style="color: #cc6600;">></span><span style="color: #cc6600;">click</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">+</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">drag</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">mouse</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">to</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">draw</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">dots</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">used</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">as</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">simulation</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">seed</span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">li</span><span style="color: #cc6600;">></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 8 </span></span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">li</span><span style="color: #cc6600;">></span><span style="color: #cc6600;">press</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">any</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">key</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">to</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">reset</span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">li</span><span style="color: #cc6600;">></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 9 </span></span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">ul</span><span style="color: #cc6600;">></span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">p</span><span style="color: #cc6600;">></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 10 </span></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 11 </span></span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">p</span><span style="color: #cc6600;">></span><span style="color: #cc6600;">UPDATES</span><span style="color: #cc6600;">:</span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">ul</span><span style="color: #cc6600;">></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 12 </span></span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">li</span><span style="color: #cc6600;">></span><span style="color: #cc6600;">2011</span><span style="color: #cc6600;">-</span><span style="color: #cc6600;">01</span><span style="color: #cc6600;">-</span><span style="color: #cc6600;">18</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">using</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">ToneMap</span><span style="color: #cc6600;">.</span><span style="color: #cc6600;">getToneMappedArray</span><span style="color: #cc6600;">(</span><span style="color: #cc6600;">)</span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">li</span><span style="color: #cc6600;">></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 13 </span></span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">ul</span><span style="color: #cc6600;">></span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">p</span><span style="color: #cc6600;">></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 14 </span></span><span style="color: #cc6600;">"""</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 15 </span></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 16 </span></span><span style="color: #cc6600;">"""</span><span style="color: #cc6600;"> </span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 17 </span></span><span style="color: #cc6600;">Copyright</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">(</span><span style="color: #cc6600;">c</span><span style="color: #cc6600;">)</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">2010</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Karsten</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Schmidt</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 18 </span></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 19 </span></span><span style="color: #cc6600;">This</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">demo</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">&</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">library</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">is</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">free</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">software</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">you</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">can</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">redistribute</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">it</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">and</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">or</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 20 </span></span><span style="color: #cc6600;">modify</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">it</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">under</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">terms</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">of</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">GNU</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Lesser</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">General</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Public</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 21 </span></span><span style="color: #cc6600;">License</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">as</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">published</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">by</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Free</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Software</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Foundation</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">either</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 22 </span></span><span style="color: #cc6600;">version</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">2</span><span style="color: #cc6600;">.</span><span style="color: #cc6600;">1</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">of</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">License</span><span style="color: #cc6600;">,</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">or</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">(</span><span style="color: #cc6600;">at</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">your</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">option</span><span style="color: #cc6600;">)</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">any</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">later</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">version</span><span style="color: #cc6600;">.</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 23 </span></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 24 </span></span><span style="color: #cc6600;">http</span><span style="color: #cc6600;">:</span><span style="color: #cc6600;">#</span><span style="color: #cc6600;">creativecommons</span><span style="color: #cc6600;">.</span><span style="color: #cc6600;">org</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">licenses</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">LGPL</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">2</span><span style="color: #cc6600;">.</span><span style="color: #cc6600;">1</span><span style="color: #cc6600;">/</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 25 </span></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 26 </span></span><span style="color: #cc6600;">This</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">library</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">is</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">distributed</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">in</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">hope</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">that</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">it</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">will</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">be</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">useful</span><span style="color: #cc6600;">,</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 27 </span></span><span style="color: #cc6600;">but</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">WITHOUT</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">ANY</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">WARRANTY</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">without</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">even</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">implied</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">warranty</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">of</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 28 </span></span><span style="color: #cc6600;">MERCHANTABILITY</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">or</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">FITNESS</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">FOR</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">A</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">PARTICULAR</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">PURPOSE</span><span style="color: #cc6600;">.</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">See</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">GNU</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 29 </span></span><span style="color: #cc6600;">Lesser</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">General</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Public</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">License</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">for</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">more</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">details</span><span style="color: #cc6600;">.</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 30 </span></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 31 </span></span><span style="color: #cc6600;">You</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">should</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">have</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">received</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">a</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">copy</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">of</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">GNU</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Lesser</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">General</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Public</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 32 </span></span><span style="color: #cc6600;">License</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">along</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">with</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">this</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">library</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">if</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">not</span><span style="color: #cc6600;">,</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">write</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">to</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Free</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Software</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 33 </span></span><span style="color: #cc6600;">Foundation</span><span style="color: #cc6600;">,</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Inc</span><span style="color: #cc6600;">.</span><span style="color: #cc6600;">,</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">51</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Franklin</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">St</span><span style="color: #cc6600;">,</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Fifth</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Floor</span><span style="color: #cc6600;">,</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Boston</span><span style="color: #cc6600;">,</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">MA</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">02110</span><span style="color: #cc6600;">-</span><span style="color: #cc6600;">1301</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">USA</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 34 </span></span><span style="color: #cc6600;">"""</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 35 </span></span><span style="color: #006699;"><b>import</b></span> toxi.color.ColorGradient <span style="color: #006699;"><b>as</b></span> ColorGradient
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 36 </span></span><span style="color: #006699;"><b>import</b></span> toxi.color.NamedColor <span style="color: #006699;"><b>as</b></span> NamedColor
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 37 </span></span><span style="color: #006699;"><b>import</b></span> toxi.color.ToneMap <span style="color: #006699;"><b>as</b></span> ToneMap
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 38 </span></span><span style="color: #006699;"><b>import</b></span> toxi.sim.grayscott.GrayScott <span style="color: #006699;"><b>as</b></span> GrayScott
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 39 </span></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 40 </span></span>NUM_ITERATIONS <span style="color: #990099;"><b>=</b></span> <span style="color: red;">10</span> <span style="color: #990033;">#</span><span style="color: #990033;"> </span><span style="color: #990033;">NB:</span><span style="color: #990033;"> </span><span style="color: #990033;">non-inclusive</span><span style="color: #990033;"> </span><span style="color: #990033;">range</span><span style="color: #990033;"> </span><span style="color: #990033;">in</span><span style="color: #990033;"> </span><span style="color: #990033;">python</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 41 </span></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 42 </span></span><span style="color: #006699;"><b>def</b></span> <span style="color: #9966ff;">setup</span><span style="color: #990099;"><b>(</b></span><span style="color: #990099;"><b>)</b></span><span style="color: #006699;"><b>:</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 43 </span></span> <span style="color: #9966ff;">size</span><span style="color: #990099;"><b>(</b></span><span style="color: red;">256</span>,<span style="color: red;">256</span><span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 44 </span></span> <span style="color: #006699;"><b>global</b></span> gs, toneMap
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 45 </span></span> gs <span style="color: #990099;"><b>=</b></span> <span style="color: #9966ff;">GrayScott</span><span style="color: #990099;"><b>(</b></span>width,height,<span style="color: #cc6600;"><b>False</b></span><span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 46 </span></span> gs.<span style="color: #9966ff;">setCoefficients</span><span style="color: #990099;"><b>(</b></span><span style="color: red;">0</span>.<span style="color: red;">021</span>,<span style="color: red;">0</span>.<span style="color: red;">076</span>,<span style="color: red;">0</span>.<span style="color: red;">12</span>,<span style="color: red;">0</span>.<span style="color: red;">06</span><span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 47 </span></span> <span style="color: #990033;">#</span><span style="color: #990033;"> </span><span style="color: #990033;">create</span><span style="color: #990033;"> </span><span style="color: #990033;">a</span><span style="color: #990033;"> </span><span style="color: #990033;">color</span><span style="color: #990033;"> </span><span style="color: #990033;">gradient</span><span style="color: #990033;"> </span><span style="color: #990033;">for</span><span style="color: #990033;"> </span><span style="color: #990033;">256</span><span style="color: #990033;"> </span><span style="color: #990033;">values</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 48 </span></span> grad <span style="color: #990099;"><b>=</b></span> <span style="color: #9966ff;">ColorGradient</span><span style="color: #990099;"><b>(</b></span><span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 49 </span></span> <span style="color: #990033;">#</span><span style="color: #990033;"> </span><span style="color: #990033;">NamedColors</span><span style="color: #990033;"> </span><span style="color: #990033;">are</span><span style="color: #990033;"> </span><span style="color: #990033;">preset</span><span style="color: #990033;"> </span><span style="color: #990033;">colors,</span><span style="color: #990033;"> </span><span style="color: #990033;">but</span><span style="color: #990033;"> </span><span style="color: #990033;">any</span><span style="color: #990033;"> </span><span style="color: #990033;">TColor</span><span style="color: #990033;"> </span><span style="color: #990033;">can</span><span style="color: #990033;"> </span><span style="color: #990033;">be</span><span style="color: #990033;"> </span><span style="color: #990033;">added</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 50 </span></span> <span style="color: #990033;">#</span><span style="color: #990033;"> </span><span style="color: #990033;">see</span><span style="color: #990033;"> </span><span style="color: #990033;">javadocs</span><span style="color: #990033;"> </span><span style="color: #990033;">for</span><span style="color: #990033;"> </span><span style="color: #990033;">list</span><span style="color: #990033;"> </span><span style="color: #990033;">of</span><span style="color: #990033;"> </span><span style="color: #990033;">names:</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 51 </span></span> <span style="color: #990033;">#</span><span style="color: #990033;"> </span><span style="color: #990033;">http://toxiclibs.org/docs/colorutils/toxi/color/NamedColor.html</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 52 </span></span> grad.<span style="color: #9966ff;">addColorAt</span><span style="color: #990099;"><b>(</b></span><span style="color: red;">0</span>,NamedColor.BLACK<span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 53 </span></span> grad.<span style="color: #9966ff;">addColorAt</span><span style="color: #990099;"><b>(</b></span><span style="color: red;">128</span>,NamedColor.RED<span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 54 </span></span> grad.<span style="color: #9966ff;">addColorAt</span><span style="color: #990099;"><b>(</b></span><span style="color: red;">192</span>,NamedColor.YELLOW<span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 55 </span></span> grad.<span style="color: #9966ff;">addColorAt</span><span style="color: #990099;"><b>(</b></span><span style="color: red;">255</span>,NamedColor.WHITE<span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 56 </span></span> <span style="color: #990033;">#</span><span style="color: #990033;"> </span><span style="color: #990033;">this</span><span style="color: #990033;"> </span><span style="color: #990033;">gradient</span><span style="color: #990033;"> </span><span style="color: #990033;">is</span><span style="color: #990033;"> </span><span style="color: #990033;">used</span><span style="color: #990033;"> </span><span style="color: #990033;">to</span><span style="color: #990033;"> </span><span style="color: #990033;">map</span><span style="color: #990033;"> </span><span style="color: #990033;">simulation</span><span style="color: #990033;"> </span><span style="color: #990033;">values</span><span style="color: #990033;"> </span><span style="color: #990033;">to</span><span style="color: #990033;"> </span><span style="color: #990033;">colors</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 57 </span></span> <span style="color: #990033;">#</span><span style="color: #990033;"> </span><span style="color: #990033;">the</span><span style="color: #990033;"> </span><span style="color: #990033;">first</span><span style="color: #990033;"> </span><span style="color: #990033;">2</span><span style="color: #990033;"> </span><span style="color: #990033;">parameters</span><span style="color: #990033;"> </span><span style="color: #990033;">define</span><span style="color: #990033;"> </span><span style="color: #990033;">the</span><span style="color: #990033;"> </span><span style="color: #990033;">min/max</span><span style="color: #990033;"> </span><span style="color: #990033;">values</span><span style="color: #990033;"> </span><span style="color: #990033;">of</span><span style="color: #990033;"> </span><span style="color: #990033;">the</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 58 </span></span> <span style="color: #990033;">#</span><span style="color: #990033;"> </span><span style="color: #990033;">input</span><span style="color: #990033;"> </span><span style="color: #990033;">range</span><span style="color: #990033;"> </span><span style="color: #990033;">(Gray-Scott</span><span style="color: #990033;"> </span><span style="color: #990033;">produces</span><span style="color: #990033;"> </span><span style="color: #990033;">values</span><span style="color: #990033;"> </span><span style="color: #990033;">in</span><span style="color: #990033;"> </span><span style="color: #990033;">the</span><span style="color: #990033;"> </span><span style="color: #990033;">interval</span><span style="color: #990033;"> </span><span style="color: #990033;">of</span><span style="color: #990033;"> </span><span style="color: #990033;">0.0</span><span style="color: #990033;"> </span><span style="color: #990033;">-</span><span style="color: #990033;"> </span><span style="color: #990033;">0.5)</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 59 </span></span> <span style="color: #990033;">#</span><span style="color: #990033;"> </span><span style="color: #990033;">setting</span><span style="color: #990033;"> </span><span style="color: #990033;">the</span><span style="color: #990033;"> </span><span style="color: #990033;">max</span><span style="color: #990033;"> </span><span style="color: #990033;">=</span><span style="color: #990033;"> </span><span style="color: #990033;">0.33</span><span style="color: #990033;"> </span><span style="color: #990033;">increases</span><span style="color: #990033;"> </span><span style="color: #990033;">the</span><span style="color: #990033;"> </span><span style="color: #990033;">contrast</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 60 </span></span> toneMap <span style="color: #990099;"><b>=</b></span> <span style="color: #9966ff;">ToneMap</span><span style="color: #990099;"><b>(</b></span><span style="color: red;">0</span>,<span style="color: red;">0</span>.<span style="color: red;">33</span>,grad<span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 61 </span></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 62 </span></span><span style="color: #006699;"><b>def</b></span> <span style="color: #9966ff;">draw</span><span style="color: #990099;"><b>(</b></span><span style="color: #990099;"><b>)</b></span><span style="color: #006699;"><b>:</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 63 </span></span> <span style="color: #006699;"><b>if</b></span> <span style="color: #990099;"><b>(</b></span>mousePressed<span style="color: #990099;"><b>)</b></span><span style="color: #006699;"><b>:</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 64 </span></span> gs.<span style="color: #9966ff;">setRect</span><span style="color: #990099;"><b>(</b></span>mouseX, mouseY,<span style="color: red;">20</span>,<span style="color: red;">20</span><span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 65 </span></span> <span style="color: #9966ff;">loadPixels</span><span style="color: #990099;"><b>(</b></span><span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 66 </span></span> <span style="color: #990033;">#</span><span style="color: #990033;"> </span><span style="color: #990033;">update</span><span style="color: #990033;"> </span><span style="color: #990033;">the</span><span style="color: #990033;"> </span><span style="color: #990033;">simulation</span><span style="color: #990033;"> </span><span style="color: #990033;">a</span><span style="color: #990033;"> </span><span style="color: #990033;">few</span><span style="color: #990033;"> </span><span style="color: #990033;">time</span><span style="color: #990033;"> </span><span style="color: #990033;">steps</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 67 </span></span> <span style="color: #006699;"><b>for</b></span> i <span style="color: #006699;"><b>in</b></span> <span style="color: #009966;"><b>range</b></span><span style="color: #990099;"><b>(</b></span><span style="color: red;">0</span>, NUM_ITERATIONS<span style="color: #990099;"><b>)</b></span><span style="color: #006699;"><b>:</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 68 </span></span> gs.<span style="color: #9966ff;">update</span><span style="color: #990099;"><b>(</b></span><span style="color: red;">1</span><span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 69 </span></span> <span style="color: #990033;">#</span><span style="color: #990033;"> </span><span style="color: #990033;">read</span><span style="color: #990033;"> </span><span style="color: #990033;">out</span><span style="color: #990033;"> </span><span style="color: #990033;">the</span><span style="color: #990033;"> </span><span style="color: #990033;">V</span><span style="color: #990033;"> </span><span style="color: #990033;">result</span><span style="color: #990033;"> </span><span style="color: #990033;">array</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 70 </span></span> <span style="color: #990033;">#</span><span style="color: #990033;"> </span><span style="color: #990033;">and</span><span style="color: #990033;"> </span><span style="color: #990033;">use</span><span style="color: #990033;"> </span><span style="color: #990033;">tone</span><span style="color: #990033;"> </span><span style="color: #990033;">map</span><span style="color: #990033;"> </span><span style="color: #990033;">to</span><span style="color: #990033;"> </span><span style="color: #990033;">render</span><span style="color: #990033;"> </span><span style="color: #990033;">colours</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 71 </span></span> toneMap.<span style="color: #9966ff;">getToneMappedArray</span><span style="color: #990099;"><b>(</b></span>gs.v,pixels<span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 72 </span></span> <span style="color: #9966ff;">updatePixels</span><span style="color: #990099;"><b>(</b></span><span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 73 </span></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 74 </span></span><span style="color: #006699;"><b>def</b></span> <span style="color: #9966ff;">keyPressed</span><span style="color: #990099;"><b>(</b></span><span style="color: #990099;"><b>)</b></span><span style="color: #006699;"><b>:</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 75 </span></span> gs.<span style="color: #9966ff;">reset</span><span style="color: #990099;"><b>(</b></span><span style="color: #990099;"><b>)</b></span></span></pre>
<pre><span style="color: black;"><span style="color: #990099;"><b> </b></span></span></pre>
<pre><span style="color: black;"><span style="color: #990099;"><b> </b></span>
</span></pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMm0iDWQO33yCodI48XDspzX9bLsOcJFJeIrfXR4uDmoeifarMuqzTAetbZd8Yt3hBWnrfWwVlXt-RqRm8kLwoJN2vK8_VrelJPHiKlReIaCZq4WKsluJrlBYKRk2dfOOnBHoFwKNie6D-/s1600/GrayScott.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="284" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMm0iDWQO33yCodI48XDspzX9bLsOcJFJeIrfXR4uDmoeifarMuqzTAetbZd8Yt3hBWnrfWwVlXt-RqRm8kLwoJN2vK8_VrelJPHiKlReIaCZq4WKsluJrlBYKRk2dfOOnBHoFwKNie6D-/s400/GrayScott.png" width="264" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Here is another Gray Scott Diffusion Sketch<br />
<br />
<pre><span style="color: black;"><span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 1 </span></span><span style="color: #cc6600;">"""</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 2 </span></span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">*</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">p</span><span style="color: #cc6600;">></span><span style="color: #cc6600;">GrayScottImage</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">uses</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">seedImage</span><span style="color: #cc6600;">(</span><span style="color: #cc6600;">)</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">method</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">to</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">use</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">a</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">bitmap</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">as</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">simulation</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">seed</span><span style="color: #cc6600;">.</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 3 </span></span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">*</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">In</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">this</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">demo</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">image</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">is</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">re</span><span style="color: #cc6600;">-</span><span style="color: #cc6600;">applied</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">every</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">frame</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">and</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">user</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">can</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">adjust</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 4 </span></span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">*</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">F</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">coefficient</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">of</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">reaction</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">diffusion</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">to</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">produce</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">different</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">patterns</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">emerging</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 5 </span></span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">*</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">from</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">boundary</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">of</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">bitmapped</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">seed</span><span style="color: #cc6600;">.</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Unlike</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">some</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">other</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">GS</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">demos</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">provided</span><span style="color: #cc6600;">,</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 6 </span></span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">*</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">this</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">one</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">also</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">uses</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">a</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">wrapped</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">simulation</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">space</span><span style="color: #cc6600;">,</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">creating</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">tiled</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">patterns</span><span style="color: #cc6600;">.</span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">p</span><span style="color: #cc6600;">></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 7 </span></span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">*</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 8 </span></span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">*</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">p</span><span style="color: #cc6600;">></span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">strong</span><span style="color: #cc6600;">></span><span style="color: #cc6600;">usage</span><span style="color: #cc6600;">:</span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">strong</span><span style="color: #cc6600;">></span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">p</span><span style="color: #cc6600;">></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 9 </span></span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">*</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">ul</span><span style="color: #cc6600;">></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 10 </span></span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">*</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">li</span><span style="color: #cc6600;">></span><span style="color: #cc6600;">click</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">+</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">drag</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">mouse</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">to</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">locally</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">disturb</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">simulation</span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">li</span><span style="color: #cc6600;">></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 11 </span></span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">*</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">li</span><span style="color: #cc6600;">></span><span style="color: #cc6600;">press</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">1</span><span style="color: #cc6600;">-</span><span style="color: #cc6600;">9</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">to</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">adjust</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">F</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">parameter</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">of</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">simulation</span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">li</span><span style="color: #cc6600;">></span><span style="color: #cc6600;"> </span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 12 </span></span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">*</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">li</span><span style="color: #cc6600;">></span><span style="color: #cc6600;">press</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">any</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">other</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">key</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">to</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">reset</span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">li</span><span style="color: #cc6600;">></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 13 </span></span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">*</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">ul</span><span style="color: #cc6600;">></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 14 </span></span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">*</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 15 </span></span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">*</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">p</span><span style="color: #cc6600;">></span><span style="color: #cc6600;">UPDATES</span><span style="color: #cc6600;">:</span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">ul</span><span style="color: #cc6600;">></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 16 </span></span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">*</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">li</span><span style="color: #cc6600;">></span><span style="color: #cc6600;">2011</span><span style="color: #cc6600;">-</span><span style="color: #cc6600;">01</span><span style="color: #cc6600;">-</span><span style="color: #cc6600;">18</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">using</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">ToneMap</span><span style="color: #cc6600;">.</span><span style="color: #cc6600;">getToneMappedArray</span><span style="color: #cc6600;">(</span><span style="color: #cc6600;">)</span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">li</span><span style="color: #cc6600;">></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 17 </span></span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">*</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">ul</span><span style="color: #cc6600;">></span><span style="color: #cc6600;"><</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">p</span><span style="color: #cc6600;">></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 18 </span></span><span style="color: #cc6600;">"""</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 19 </span></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 20 </span></span><span style="color: #cc6600;">"""</span><span style="color: #cc6600;"> </span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 21 </span></span><span style="color: #cc6600;">Copyright</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">(</span><span style="color: #cc6600;">c</span><span style="color: #cc6600;">)</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">2010</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Karsten</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Schmidt</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 22 </span></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 23 </span></span><span style="color: #cc6600;">This</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">demo</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">&</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">library</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">is</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">free</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">software</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">you</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">can</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">redistribute</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">it</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">and</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">or</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 24 </span></span><span style="color: #cc6600;">modify</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">it</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">under</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">terms</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">of</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">GNU</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Lesser</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">General</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Public</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 25 </span></span><span style="color: #cc6600;">License</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">as</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">published</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">by</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Free</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Software</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Foundation</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">either</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 26 </span></span><span style="color: #cc6600;">version</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">2</span><span style="color: #cc6600;">.</span><span style="color: #cc6600;">1</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">of</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">License</span><span style="color: #cc6600;">,</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">or</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">(</span><span style="color: #cc6600;">at</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">your</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">option</span><span style="color: #cc6600;">)</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">any</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">later</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">version</span><span style="color: #cc6600;">.</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 27 </span></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 28 </span></span><span style="color: #cc6600;">http</span><span style="color: #cc6600;">:</span><span style="color: #cc6600;">#</span><span style="color: #cc6600;">creativecommons</span><span style="color: #cc6600;">.</span><span style="color: #cc6600;">org</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">licenses</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">LGPL</span><span style="color: #cc6600;">/</span><span style="color: #cc6600;">2</span><span style="color: #cc6600;">.</span><span style="color: #cc6600;">1</span><span style="color: #cc6600;">/</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 29 </span></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 30 </span></span><span style="color: #cc6600;">This</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">library</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">is</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">distributed</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">in</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">hope</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">that</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">it</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">will</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">be</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">useful</span><span style="color: #cc6600;">,</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 31 </span></span><span style="color: #cc6600;">but</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">WITHOUT</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">ANY</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">WARRANTY</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">without</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">even</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">implied</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">warranty</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">of</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 32 </span></span><span style="color: #cc6600;">MERCHANTABILITY</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">or</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">FITNESS</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">FOR</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">A</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">PARTICULAR</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">PURPOSE</span><span style="color: #cc6600;">.</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">See</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">GNU</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 33 </span></span><span style="color: #cc6600;">Lesser</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">General</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Public</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">License</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">for</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">more</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">details</span><span style="color: #cc6600;">.</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 34 </span></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 35 </span></span><span style="color: #cc6600;">You</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">should</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">have</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">received</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">a</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">copy</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">of</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">GNU</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Lesser</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">General</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Public</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 36 </span></span><span style="color: #cc6600;">License</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">along</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">with</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">this</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">library</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">if</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">not</span><span style="color: #cc6600;">,</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">write</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">to</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">the</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Free</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Software</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 37 </span></span><span style="color: #cc6600;">Foundation</span><span style="color: #cc6600;">,</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Inc</span><span style="color: #cc6600;">.</span><span style="color: #cc6600;">,</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">51</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Franklin</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">St</span><span style="color: #cc6600;">,</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Fifth</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Floor</span><span style="color: #cc6600;">,</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">Boston</span><span style="color: #cc6600;">,</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">MA</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">02110</span><span style="color: #cc6600;">-</span><span style="color: #cc6600;">1301</span><span style="color: #cc6600;"> </span><span style="color: #cc6600;"> </span><span style="color: #cc6600;">USA</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 38 </span></span><span style="color: #cc6600;">"""</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 39 </span></span><span style="color: #006699;"><b>import</b></span> toxi.color.ColorGradient <span style="color: #006699;"><b>as</b></span> ColorGradient
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 40 </span></span><span style="color: #006699;"><b>import</b></span> toxi.color.NamedColor <span style="color: #006699;"><b>as</b></span> NamedColor
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 41 </span></span><span style="color: #006699;"><b>import</b></span> toxi.color.ToneMap <span style="color: #006699;"><b>as</b></span> ToneMap
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 42 </span></span><span style="color: #006699;"><b>import</b></span> toxi.sim.grayscott.GrayScott <span style="color: #006699;"><b>as</b></span> GrayScott
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 43 </span></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 44 </span></span><span style="color: #006699;"><b>def</b></span> <span style="color: #9966ff;">setup</span><span style="color: #990099;"><b>(</b></span><span style="color: #990099;"><b>)</b></span><span style="color: #006699;"><b>:</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 45 </span></span> <span style="color: #9966ff;">size</span><span style="color: #990099;"><b>(</b></span><span style="color: red;">256</span>,<span style="color: red;">256</span><span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 46 </span></span> <span style="color: #006699;"><b>global</b></span> gs, img, toneMap
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 47 </span></span> gs <span style="color: #990099;"><b>=</b></span> <span style="color: #9966ff;">GrayScott</span><span style="color: #990099;"><b>(</b></span>width,height,<span style="color: #cc6600;"><b>True</b></span><span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 48 </span></span> img <span style="color: #990099;"><b>=</b></span> <span style="color: #9966ff;">loadImage</span><span style="color: #990099;"><b>(</b></span><span style="color: #cd8f8f;">"</span><span style="color: #cd8f8f;">ti_yong</span><span style="color: #cd8f8f;">.</span><span style="color: #cd8f8f;">png</span><span style="color: #cd8f8f;">"</span><span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 49 </span></span> <span style="color: #990033;">#</span><span style="color: #990033;"> </span><span style="color: #990033;">create</span><span style="color: #990033;"> </span><span style="color: #990033;">a</span><span style="color: #990033;"> </span><span style="color: #990033;">duo-tone</span><span style="color: #990033;"> </span><span style="color: #990033;">gradient</span><span style="color: #990033;"> </span><span style="color: #990033;">map</span><span style="color: #990033;"> </span><span style="color: #990033;">with</span><span style="color: #990033;"> </span><span style="color: #990033;">256</span><span style="color: #990033;"> </span><span style="color: #990033;">steps</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 50 </span></span> toneMap <span style="color: #990099;"><b>=</b></span> <span style="color: #9966ff;">ToneMap</span><span style="color: #990099;"><b>(</b></span><span style="color: red;">0</span>,<span style="color: red;">0</span>.<span style="color: red;">33</span>,NamedColor.CRIMSON,NamedColor.WHITE,<span style="color: red;">256</span><span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 51 </span></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 52 </span></span><span style="color: #006699;"><b>def</b></span> <span style="color: #9966ff;">draw</span><span style="color: #990099;"><b>(</b></span><span style="color: #990099;"><b>)</b></span><span style="color: #006699;"><b>:</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 53 </span></span> gs.<span style="color: #9966ff;">seedImage</span><span style="color: #990099;"><b>(</b></span>img.pixels,img.width,img.height<span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 54 </span></span> <span style="color: #006699;"><b>if</b></span> <span style="color: #990099;"><b>(</b></span>mousePressed<span style="color: #990099;"><b>)</b></span><span style="color: #006699;"><b>:</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 55 </span></span> gs.<span style="color: #9966ff;">setRect</span><span style="color: #990099;"><b>(</b></span>mouseX, mouseY,<span style="color: red;">20</span>,<span style="color: red;">20</span><span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 56 </span></span> <span style="color: #9966ff;">loadPixels</span><span style="color: #990099;"><b>(</b></span><span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 57 </span></span> <span style="color: #006699;"><b>for</b></span> i <span style="color: #006699;"><b>in</b></span> <span style="color: #009966;"><b>range</b></span><span style="color: #990099;"><b>(</b></span><span style="color: red;">0</span>, <span style="color: red;">10</span><span style="color: #990099;"><b>)</b></span><span style="color: #006699;"><b>:</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 58 </span></span> gs.<span style="color: #9966ff;">update</span><span style="color: #990099;"><b>(</b></span><span style="color: red;">1</span><span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 59 </span></span> <span style="color: #990033;">#</span><span style="color: #990033;"> </span><span style="color: #990033;">read</span><span style="color: #990033;"> </span><span style="color: #990033;">out</span><span style="color: #990033;"> </span><span style="color: #990033;">the</span><span style="color: #990033;"> </span><span style="color: #990033;">V</span><span style="color: #990033;"> </span><span style="color: #990033;">result</span><span style="color: #990033;"> </span><span style="color: #990033;">array</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 60 </span></span> <span style="color: #990033;">#</span><span style="color: #990033;"> </span><span style="color: #990033;">and</span><span style="color: #990033;"> </span><span style="color: #990033;">use</span><span style="color: #990033;"> </span><span style="color: #990033;">tone</span><span style="color: #990033;"> </span><span style="color: #990033;">map</span><span style="color: #990033;"> </span><span style="color: #990033;">to</span><span style="color: #990033;"> </span><span style="color: #990033;">render</span><span style="color: #990033;"> </span><span style="color: #990033;">colours</span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 61 </span></span> toneMap.<span style="color: #9966ff;">getToneMappedArray</span><span style="color: #990099;"><b>(</b></span>gs.v,pixels<span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 62 </span></span> <span style="color: #9966ff;">updatePixels</span><span style="color: #990099;"><b>(</b></span><span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 63 </span></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 64 </span></span><span style="color: #006699;"><b>def</b></span> <span style="color: #9966ff;">keyPressed</span><span style="color: #990099;"><b>(</b></span><span style="color: #990099;"><b>)</b></span><span style="color: #006699;"><b>:</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: #990066;"> 65 </span></span> <span style="color: #006699;"><b>if</b></span> <span style="color: #990099;"><b>(</b></span><span style="color: #009966;"><b>ord</b></span><span style="color: #990099;"><b>(</b></span>key<span style="color: #990099;"><b>)</b></span><span style="color: #990099;"><b>>=</b></span><span style="color: red;">49</span> <span style="color: #006699;"><b>and</b></span> <span style="color: #009966;"><b>ord</b></span><span style="color: #990099;"><b>(</b></span>key<span style="color: #990099;"><b>)</b></span><span style="color: #990099;"><b><=</b></span><span style="color: red;">57</span><span style="color: #990099;"><b>)</b></span><span style="color: #006699;"><b>:</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 66 </span></span> gs.<span style="color: #9966ff;">setF</span><span style="color: #990099;"><b>(</b></span><span style="color: red;">0</span>.<span style="color: red;">02</span> <span style="color: #990099;"><b>+</b></span> <span style="color: #990099;"><b>(</b></span><span style="color: #009966;"><b>ord</b></span><span style="color: #990099;"><b>(</b></span>key<span style="color: #990099;"><b>)</b></span> <span style="color: #990099;"><b>-</b></span> <span style="color: red;">48</span><span style="color: #990099;"><b>)</b></span> <span style="color: #990099;"><b>*</b></span> <span style="color: red;">0</span>.<span style="color: red;">001</span><span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 67 </span></span> <span style="color: #006699;"><b>else</b></span><span style="color: #006699;"><b>:</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 68 </span></span> gs.<span style="color: #9966ff;">reset</span><span style="color: #990099;"><b>(</b></span><span style="color: #990099;"><b>)</b></span>
<span style="background: #cccccc; border-right: solid 2px black; margin-right: 5px;"><span style="color: white;"> 69 </span></span> </span></pre>
<pre><span style="color: black;"> </span></pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwAeLvg3FcokkMGV9NESGskQqi64zjGbvTt4EBKA6y7UuKG2ClmbIKxNX5J1iYbdiMNhGOuP89xbNFij1jJSEKLaQAOVbUWqKZKoOhdt9TPE1O-LpN3WIOHcIrLIMPjjX_rG8F7EehyphenhyphenffM/s1600/GrayScott.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwAeLvg3FcokkMGV9NESGskQqi64zjGbvTt4EBKA6y7UuKG2ClmbIKxNX5J1iYbdiMNhGOuP89xbNFij1jJSEKLaQAOVbUWqKZKoOhdt9TPE1O-LpN3WIOHcIrLIMPjjX_rG8F7EehyphenhyphenffM/s1600/GrayScott.png" /></a></div>
<pre><span style="color: black;"> </span></pre>
monkstonehttp://www.blogger.com/profile/10339203885788088979noreply@blogger.com0tag:blogger.com,1999:blog-7042670778249660320.post-58353782188366077702012-11-29T15:22:00.000+00:002012-11-29T15:24:32.793+00:00Yet another Generative Design Sketch in Processing.pyThis is a sketch you definetly need to run to fully appreciate it.
<pre><font color="#000000"><span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 1 </font></span><font color="#006699"><strong>import</strong></font> generativedesign.Node <font color="#006699"><strong>as</strong></font> Node
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 2 </font></span><font color="#006699"><strong>import</strong></font> generativedesign.Spring <font color="#006699"><strong>as</strong></font> Spring
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 3 </font></span><font color="#006699"><strong>import</strong></font> generativedesign.Attractor <font color="#006699"><strong>as</strong></font> Attractor
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 4 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 5 </font></span><font color="#cc6600">"""</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 6 </font></span><font color="#cc6600">part</font><font color="#cc6600"> </font><font color="#cc6600">of</font><font color="#cc6600"> </font><font color="#cc6600">the</font><font color="#cc6600"> </font><font color="#cc6600">example</font><font color="#cc6600"> </font><font color="#cc6600">files</font><font color="#cc6600"> </font><font color="#cc6600">of</font><font color="#cc6600"> </font><font color="#cc6600">the</font><font color="#cc6600"> </font><font color="#cc6600">generativedesign</font><font color="#cc6600"> </font><font color="#cc6600">library</font><font color="#cc6600">.</font><font color="#cc6600"> </font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 7 </font></span><font color="#cc6600">shows</font><font color="#cc6600"> </font><font color="#cc6600">how</font><font color="#cc6600"> </font><font color="#cc6600">to</font><font color="#cc6600"> </font><font color="#cc6600">use</font><font color="#cc6600"> </font><font color="#cc6600">the</font><font color="#cc6600"> </font><font color="#cc6600">classes</font><font color="#cc6600"> </font><font color="#cc6600">Node</font><font color="#cc6600">,</font><font color="#cc6600"> </font><font color="#cc6600">Spring</font><font color="#cc6600"> </font><font color="#cc6600">and</font><font color="#cc6600"> </font><font color="#cc6600">Attractor</font><font color="#cc6600"> </font><font color="#cc6600">in</font><font color="#cc6600"> </font><font color="#cc6600">3d</font><font color="#cc6600"> </font><font color="#cc6600">space</font><font color="#cc6600">.</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 8 </font></span><font color="#cc6600">"""</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 9 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 10 </font></span><font color="#006699"><strong>def</strong></font> <font color="#9966ff">setup</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font><font color="#006699"><strong>:</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 11 </font></span> <font color="#cc6600">"""</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 12 </font></span><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600">Setup</font><font color="#cc6600"> </font><font color="#cc6600">Sketch</font><font color="#cc6600"> </font><font color="#cc6600">smooth</font><font color="#cc6600"> </font><font color="#cc6600">should</font><font color="#cc6600"> </font><font color="#cc6600">be</font><font color="#cc6600"> </font><font color="#cc6600">called</font><font color="#cc6600"> </font><font color="#cc6600">here</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 13 </font></span><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600">"""</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 14 </font></span> <font color="#9966ff">size</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">512</font>, <font color="#ff0000">512</font>, P3D<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 15 </font></span> <font color="#9966ff">lights</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 16 </font></span> <font color="#006699"><strong>global</strong></font> nodeA, nodeB, attractor, spring
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 17 </font></span> <font color="#9966ff">smooth</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">8</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 18 </font></span> <font color="#9966ff">fill</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">0</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 19 </font></span> nodeA <font color="#990099"><strong>=</strong></font> <font color="#9966ff">Node</font><font color="#990099"><strong>(</strong></font><font color="#9966ff">random</font><font color="#990099"><strong>(</strong></font>width<font color="#990099"><strong>)</strong></font>, <font color="#9966ff">random</font><font color="#990099"><strong>(</strong></font>height<font color="#990099"><strong>)</strong></font>, <font color="#9966ff">random</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>-</strong></font><font color="#ff0000">200</font>, <font color="#ff0000">200</font><font color="#990099"><strong>)</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 20 </font></span> nodeB <font color="#990099"><strong>=</strong></font> <font color="#9966ff">Node</font><font color="#990099"><strong>(</strong></font><font color="#9966ff">random</font><font color="#990099"><strong>(</strong></font>width<font color="#990099"><strong>)</strong></font>, <font color="#9966ff">random</font><font color="#990099"><strong>(</strong></font>height<font color="#990099"><strong>)</strong></font>, <font color="#9966ff">random</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>-</strong></font><font color="#ff0000">200</font>, <font color="#ff0000">200</font><font color="#990099"><strong>)</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 21 </font></span> nodeA.<font color="#9966ff">setStrength</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>-</strong></font><font color="#ff0000">2</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 22 </font></span> nodeB.<font color="#9966ff">setStrength</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>-</strong></font><font color="#ff0000">2</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 23 </font></span> nodeA.<font color="#9966ff">setDamping</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">0</font>.<font color="#ff0000">1</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 24 </font></span> nodeB.<font color="#9966ff">setDamping</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">0</font>.<font color="#ff0000">1</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 25 </font></span> nodeA.<font color="#9966ff">setBoundary</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">0</font>, <font color="#ff0000">0</font>, <font color="#990099"><strong>-</strong></font><font color="#ff0000">300</font>, width, height, <font color="#ff0000">300</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 26 </font></span> nodeB.<font color="#9966ff">setBoundary</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">0</font>, <font color="#ff0000">0</font>, <font color="#990099"><strong>-</strong></font><font color="#ff0000">300</font>, width, height, <font color="#ff0000">300</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 27 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 28 </font></span> spring <font color="#990099"><strong>=</strong></font> <font color="#9966ff">Spring</font><font color="#990099"><strong>(</strong></font>nodeA, nodeB<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 29 </font></span> spring.<font color="#9966ff">setStiffness</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">0</font>.<font color="#ff0000">7</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 30 </font></span> spring.<font color="#9966ff">setDamping</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">0</font>.<font color="#ff0000">9</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 31 </font></span> spring.<font color="#9966ff">setLength</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">100</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 32 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 33 </font></span> attractor <font color="#990099"><strong>=</strong></font> <font color="#9966ff">Attractor</font><font color="#990099"><strong>(</strong></font>width<font color="#990099"><strong>/</strong></font><font color="#ff0000">2</font>, height<font color="#990099"><strong>/</strong></font><font color="#ff0000">2</font>, <font color="#ff0000">0</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 34 </font></span> attractor.<font color="#9966ff">setMode</font><font color="#990099"><strong>(</strong></font>Attractor.SMOOTH<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 35 </font></span> attractor.<font color="#9966ff">setRadius</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">200</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 36 </font></span> attractor.<font color="#9966ff">setStrength</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">5</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 37 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 38 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 39 </font></span><font color="#006699"><strong>def</strong></font> <font color="#9966ff">draw</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font><font color="#006699"><strong>:</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 40 </font></span> <font color="#cc6600">"""</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 41 </font></span><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600">The</font><font color="#cc6600"> </font><font color="#cc6600">processing</font><font color="#cc6600"> </font><font color="#cc6600">draw</font><font color="#cc6600"> </font><font color="#cc6600">loop</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 42 </font></span><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600">"""</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 43 </font></span> <font color="#9966ff">background</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">50</font>, <font color="#ff0000">50</font>, <font color="#ff0000">200</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 44 </font></span> <font color="#9966ff">lights</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 45 </font></span> <font color="#9966ff">ambientLight</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">100</font>, <font color="#ff0000">100</font>, <font color="#ff0000">100</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 46 </font></span> <font color="#9966ff">ambient</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">30</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 47 </font></span> <font color="#9966ff">specular</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">30</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 48 </font></span> <font color="#006699"><strong>if</strong></font> <font color="#990099"><strong>(</strong></font>mousePressed <font color="#990099"><strong>=</strong></font><font color="#990099"><strong>=</strong></font> <font color="#cc6600"><strong>True</strong></font><font color="#990099"><strong>)</strong></font><font color="#006699"><strong>:</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 49 </font></span> nodeA.x <font color="#990099"><strong>=</strong></font> mouseX
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 50 </font></span> nodeA.y <font color="#990099"><strong>=</strong></font> mouseY
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 51 </font></span> nodeA.z <font color="#990099"><strong>=</strong></font> mouseY <font color="#990099"><strong>-</strong></font> <font color="#ff0000">256</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 52 </font></span> <font color="#990033">#</font><font color="#990033"> </font><font color="#990033">attraction</font><font color="#990033"> </font><font color="#990033">between</font><font color="#990033"> </font><font color="#990033">nodes</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 53 </font></span> nodeA.<font color="#9966ff">attract</font><font color="#990099"><strong>(</strong></font>nodeB<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 54 </font></span> nodeB.<font color="#9966ff">attract</font><font color="#990099"><strong>(</strong></font>nodeA<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 55 </font></span> <font color="#990033">#</font><font color="#990033"> </font><font color="#990033">update</font><font color="#990033"> </font><font color="#990033">spring</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 56 </font></span> spring.<font color="#9966ff">update</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 57 </font></span> <font color="#990033">#</font><font color="#990033"> </font><font color="#990033">attract</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 58 </font></span> attractor.<font color="#9966ff">attract</font><font color="#990099"><strong>(</strong></font>nodeA<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 59 </font></span> attractor.<font color="#9966ff">attract</font><font color="#990099"><strong>(</strong></font>nodeB<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 60 </font></span> <font color="#990033">#</font><font color="#990033"> </font><font color="#990033">update</font><font color="#990033"> </font><font color="#990033">node</font><font color="#990033"> </font><font color="#990033">positions</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 61 </font></span> nodeA.<font color="#9966ff">update</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 62 </font></span> nodeB.<font color="#9966ff">update</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 63 </font></span> <font color="#990033">#</font><font color="#990033"> </font><font color="#990033">draw</font><font color="#990033"> </font><font color="#990033">attractor</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 64 </font></span> <font color="#9966ff">stroke</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">0</font>, <font color="#ff0000">50</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 65 </font></span> <font color="#9966ff">strokeWeight</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">1</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 66 </font></span> <font color="#9966ff">noFill</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 67 </font></span> <font color="#9966ff">line</font><font color="#990099"><strong>(</strong></font>attractor.x<font color="#990099"><strong>-</strong></font><font color="#ff0000">10</font>, attractor.y, attractor.x<font color="#990099"><strong>+</strong></font><font color="#ff0000">10</font>, attractor.y<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 68 </font></span> <font color="#9966ff">line</font><font color="#990099"><strong>(</strong></font>attractor.x, attractor.y<font color="#990099"><strong>-</strong></font><font color="#ff0000">10</font>, attractor.x, attractor.y<font color="#990099"><strong>+</strong></font><font color="#ff0000">10</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 69 </font></span> <font color="#9966ff">ellipse</font><font color="#990099"><strong>(</strong></font>attractor.x, attractor.y, attractor.radius<font color="#990099"><strong>*</strong></font><font color="#ff0000">2</font>, attractor.radius<font color="#990099"><strong>*</strong></font><font color="#ff0000">2</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 70 </font></span> <font color="#990033">#</font><font color="#990033"> </font><font color="#990033">draw</font><font color="#990033"> </font><font color="#990033">spring</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 71 </font></span> <font color="#9966ff">stroke</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">255</font>, <font color="#ff0000">0</font>, <font color="#ff0000">0</font>, <font color="#ff0000">255</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 72 </font></span> <font color="#9966ff">strokeWeight</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">4</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 73 </font></span> <font color="#9966ff">line</font><font color="#990099"><strong>(</strong></font>nodeA.x, nodeA.y, nodeA.z, nodeB.x, nodeB.y, nodeB.z<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 74 </font></span> <font color="#990033">#</font><font color="#990033"> </font><font color="#990033">draw</font><font color="#990033"> </font><font color="#990033">nodes</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 75 </font></span> <font color="#9966ff">noStroke</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 76 </font></span> <font color="#9966ff">fill</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">212</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 77 </font></span> <font color="#9966ff">pushMatrix</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 78 </font></span> <font color="#9966ff">translate</font><font color="#990099"><strong>(</strong></font>nodeA.x, nodeA.y, nodeA.z<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 79 </font></span> <font color="#9966ff">sphere</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">20</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 80 </font></span> <font color="#9966ff">popMatrix</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 81 </font></span> <font color="#9966ff">pushMatrix</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 82 </font></span> <font color="#9966ff">translate</font><font color="#990099"><strong>(</strong></font>nodeB.x, nodeB.y, nodeB.z<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 83 </font></span> <font color="#9966ff">sphere</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">20</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 84 </font></span> <font color="#9966ff">popMatrix</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font>
</font></pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCyv_9sSQQ9v1HflN_MCMCO3Ga5XsmyZdetvdXJr4WqlsvPtL2w1MujSiCIEGTMp5rfd2ThT9kIvrj7C7E21TKuO-AxBKyeUZtmAVwJAxr5jV90FfbQaQTINt60hzjBv7rJ-BpbfJ9wlQL/s1600/spring.png" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"><img border="0" height="400" width="385" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCyv_9sSQQ9v1HflN_MCMCO3Ga5XsmyZdetvdXJr4WqlsvPtL2w1MujSiCIEGTMp5rfd2ThT9kIvrj7C7E21TKuO-AxBKyeUZtmAVwJAxr5jV90FfbQaQTINt60hzjBv7rJ-BpbfJ9wlQL/s400/spring.png" /></a></div>
monkstonehttp://www.blogger.com/profile/10339203885788088979noreply@blogger.com0tag:blogger.com,1999:blog-7042670778249660320.post-41581258835743296672012-11-29T14:23:00.000+00:002012-11-29T14:41:40.414+00:00Another Generative Design Sketch in Processing.pyHere is another <a href="http://www.generative-gestaltung.de/codes/generativedesign/index.html">generative design</a> sketch translated for <a href="https://github.com/jdf/processing.py">processing.py</a>.
<pre><font color="#000000"><span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 1 </font></span><font color="#006699"><strong>import</strong></font> generativedesign.Mesh <font color="#006699"><strong>as</strong></font> Mesh
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 2 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 3 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 4 </font></span><font color="#cc6600">"""</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 5 </font></span><font color="#cc6600">part</font><font color="#cc6600"> </font><font color="#cc6600">of</font><font color="#cc6600"> </font><font color="#cc6600">the</font><font color="#cc6600"> </font><font color="#cc6600">example</font><font color="#cc6600"> </font><font color="#cc6600">files</font><font color="#cc6600"> </font><font color="#cc6600">of</font><font color="#cc6600"> </font><font color="#cc6600">the</font><font color="#cc6600"> </font><font color="#cc6600">generativedesign</font><font color="#cc6600"> </font><font color="#cc6600">library</font><font color="#cc6600">.</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 6 </font></span><font color="#cc6600">Modified</font><font color="#cc6600"> </font><font color="#cc6600">to</font><font color="#cc6600"> </font><font color="#cc6600">run</font><font color="#cc6600"> </font><font color="#cc6600">with</font><font color="#cc6600"> </font><font color="#cc6600">processing</font><font color="#cc6600">.</font><font color="#cc6600">py</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 7 </font></span><font color="#cc6600">"""</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 8 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 9 </font></span><font color="#006699"><strong>def</strong></font> <font color="#9966ff">setup</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font><font color="#006699"><strong>:</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 10 </font></span> <font color="#cc6600">"""</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 11 </font></span><font color="#cc6600"> </font><font color="#cc6600">Setup</font><font color="#cc6600"> </font><font color="#cc6600">the</font><font color="#cc6600"> </font><font color="#cc6600">drawing</font><font color="#cc6600"> </font><font color="#cc6600">style</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 12 </font></span><font color="#cc6600"> </font><font color="#cc6600">"""</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 13 </font></span> <font color="#9966ff">size</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">1000</font>,<font color="#ff0000">1000</font>,P3D<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 14 </font></span> <font color="#990033">#</font><font color="#990033"> </font><font color="#990033">setup</font><font color="#990033"> </font><font color="#990033">drawing</font><font color="#990033"> </font><font color="#990033">style</font><font color="#990033"> </font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 15 </font></span> <font color="#9966ff">background</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">255</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 16 </font></span> <font color="#9966ff">noStroke</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 17 </font></span> <font color="#9966ff">fill</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">0</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 18 </font></span> <font color="#990033">#</font><font color="#990033"> </font><font color="#990033">setup</font><font color="#990033"> </font><font color="#990033">lights</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 19 </font></span> <font color="#9966ff">lightSpecular</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">230</font>, <font color="#ff0000">230</font>, <font color="#ff0000">230</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 20 </font></span> <font color="#9966ff">directionalLight</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">200</font>, <font color="#ff0000">200</font>, <font color="#ff0000">200</font>, <font color="#ff0000">0</font>.<font color="#ff0000">5</font>, <font color="#ff0000">0</font>.<font color="#ff0000">5</font>, <font color="#990099"><strong>-</strong></font><font color="#ff0000">1</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 21 </font></span> <font color="#9966ff">specular</font><font color="#990099"><strong>(</strong></font><font color="#9966ff">color</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">220</font><font color="#990099"><strong>)</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 22 </font></span> <font color="#9966ff">shininess</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">5</font>.<font color="#ff0000">0</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 23 </font></span> <font color="#990033">#</font><font color="#990033"> </font><font color="#990033">setup</font><font color="#990033"> </font><font color="#990033">view</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 24 </font></span> <font color="#9966ff">translate</font><font color="#990099"><strong>(</strong></font>width<font color="#990099"><strong>*</strong></font><font color="#ff0000">0</font>.<font color="#ff0000">5</font>, height<font color="#990099"><strong>*</strong></font><font color="#ff0000">0</font>.<font color="#ff0000">5</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 25 </font></span> <font color="#9966ff">rotateX</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>-</strong></font><font color="#ff0000">0</font>.<font color="#ff0000">2</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 26 </font></span> <font color="#9966ff">rotateY</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>-</strong></font><font color="#ff0000">0</font>.<font color="#ff0000">5</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 27 </font></span> <font color="#9966ff">scale</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">100</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 28 </font></span> <font color="#990033">#</font><font color="#990033"> </font><font color="#990033">setup</font><font color="#990033"> </font><font color="#990033">Mesh,</font><font color="#990033"> </font><font color="#990033">set</font><font color="#990033"> </font><font color="#990033">colors</font><font color="#990033"> </font><font color="#990033">and</font><font color="#990033"> </font><font color="#990033">draw</font><font color="#990033"> </font><font color="#990033"> </font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 29 </font></span> myMesh <font color="#990099"><strong>=</strong></font> <font color="#9966ff">Mesh</font><font color="#990099"><strong>(</strong></font>this, Mesh.STEINBACHSCREW, <font color="#ff0000">200</font>, <font color="#ff0000">200</font>, <font color="#990099"><strong>-</strong></font><font color="#ff0000">3</font>.<font color="#ff0000">0</font>, <font color="#ff0000">3</font>.<font color="#ff0000">0</font>, <font color="#990099"><strong>-</strong></font>PI, PI<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 30 </font></span> myMesh.<font color="#9966ff">setColorRange</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">200</font>, <font color="#ff0000">200</font>, <font color="#ff0000">50</font>, <font color="#ff0000">50</font>, <font color="#ff0000">40</font>, <font color="#ff0000">40</font>, <font color="#ff0000">100</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 31 </font></span> myMesh.<font color="#9966ff">draw</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 32 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 33 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 34 </font></span><font color="#006699"><strong>def</strong></font> <font color="#9966ff">draw</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font><font color="#006699"><strong>:</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 35 </font></span> <font color="#cc6600">"""</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 36 </font></span><font color="#cc6600"> </font><font color="#cc6600">The</font><font color="#cc6600"> </font><font color="#cc6600">processing</font><font color="#cc6600"> </font><font color="#cc6600">draw</font><font color="#cc6600"> </font><font color="#cc6600">loop</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 37 </font></span><font color="#cc6600"> </font><font color="#cc6600">"""</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 38 </font></span> <font color="#006699"><strong>pass</strong></font>
</font></pre>monkstonehttp://www.blogger.com/profile/10339203885788088979noreply@blogger.com0tag:blogger.com,1999:blog-7042670778249660320.post-74263057089385074732012-11-29T11:52:00.001+00:002012-11-29T14:41:15.147+00:00Generative Design Sketch (How to subclass)Here is an excellent example of sub-classing a java class from a vanilla processing library, and running it with <a href="https://github.com/jdf/processing.py">processing.py</a>. Currently you need to put the <a href="http://www.generative-gestaltung.de/codes/generativedesign/index.html">generativedesign library</a> in the processing.py/libraries folder (but that might change to pick up the library from the sketchbook/libraries folder).
<pre><font color="#000000"><span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 1 </font></span><font color="#006699"><strong>import</strong></font> generativedesign.Mesh <font color="#006699"><strong>as</strong></font> Mesh
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 2 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 3 </font></span><font color="#cc6600">"""</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 4 </font></span><font color="#cc6600">part</font><font color="#cc6600"> </font><font color="#cc6600">of</font><font color="#cc6600"> </font><font color="#cc6600">the</font><font color="#cc6600"> </font><font color="#cc6600">example</font><font color="#cc6600"> </font><font color="#cc6600">files</font><font color="#cc6600"> </font><font color="#cc6600">of</font><font color="#cc6600"> </font><font color="#cc6600">the</font><font color="#cc6600"> </font><font color="#cc6600">generativedesign</font><font color="#cc6600"> </font><font color="#cc6600">library</font><font color="#cc6600">.</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 5 </font></span><font color="#cc6600">shows</font><font color="#cc6600"> </font><font color="#cc6600">how</font><font color="#cc6600"> </font><font color="#cc6600">to</font><font color="#cc6600"> </font><font color="#cc6600">use</font><font color="#cc6600"> </font><font color="#cc6600">the</font><font color="#cc6600"> </font><font color="#cc6600">mesh</font><font color="#cc6600"> </font><font color="#cc6600">class</font><font color="#cc6600">,</font><font color="#cc6600"> </font><font color="#cc6600">if</font><font color="#cc6600"> </font><font color="#cc6600">you</font><font color="#cc6600"> </font><font color="#cc6600">want</font><font color="#cc6600"> </font><font color="#cc6600">to</font><font color="#cc6600"> </font><font color="#cc6600">define</font><font color="#cc6600"> </font><font color="#cc6600">your</font><font color="#cc6600"> </font><font color="#cc6600">own</font><font color="#cc6600"> </font><font color="#cc6600">forms</font><font color="#cc6600">.</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 6 </font></span><font color="#cc6600">Modified</font><font color="#cc6600"> </font><font color="#cc6600">to</font><font color="#cc6600"> </font><font color="#cc6600">run</font><font color="#cc6600"> </font><font color="#cc6600">with</font><font color="#cc6600"> </font><font color="#cc6600">processing</font><font color="#cc6600">.</font><font color="#cc6600">py</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 7 </font></span><font color="#cc6600">"""</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 8 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 9 </font></span><font color="#006699"><strong>def</strong></font> <font color="#9966ff">setup</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font><font color="#006699"><strong>:</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 10 </font></span> <font color="#cc6600">"""</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 11 </font></span><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600">Setup</font><font color="#cc6600"> </font><font color="#cc6600">the</font><font color="#cc6600"> </font><font color="#cc6600">drawing</font><font color="#cc6600"> </font><font color="#cc6600">style</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 12 </font></span><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600">"""</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 13 </font></span> <font color="#9966ff">size</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">1000</font>, <font color="#ff0000">1000</font>, P3D<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 14 </font></span> <font color="#9966ff">colorMode</font><font color="#990099"><strong>(</strong></font>HSB, <font color="#ff0000">360</font>, <font color="#ff0000">100</font>, <font color="#ff0000">100</font>, <font color="#ff0000">100</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 15 </font></span> <font color="#9966ff">noStroke</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 16 </font></span> <font color="#006699"><strong>global</strong></font> myMesh
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 17 </font></span> myMesh <font color="#990099"><strong>=</strong></font> <font color="#9966ff">MyOwnMesh</font><font color="#990099"><strong>(</strong></font>this<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 18 </font></span> myMesh.<font color="#9966ff">setUCount</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">100</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 19 </font></span> myMesh.<font color="#9966ff">setVCount</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">100</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 20 </font></span> myMesh.<font color="#9966ff">setColorRange</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">193</font>, <font color="#ff0000">193</font>, <font color="#ff0000">30</font>, <font color="#ff0000">30</font>, <font color="#ff0000">85</font>, <font color="#ff0000">85</font>, <font color="#ff0000">100</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 21 </font></span> myMesh.<font color="#9966ff">update</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 22 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 23 </font></span><font color="#006699"><strong>def</strong></font> <font color="#9966ff">draw</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font><font color="#006699"><strong>:</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 24 </font></span> <font color="#cc6600">"""</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 25 </font></span><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600">The</font><font color="#cc6600"> </font><font color="#cc6600">processing</font><font color="#cc6600"> </font><font color="#cc6600">draw</font><font color="#cc6600"> </font><font color="#cc6600">loop</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 26 </font></span><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600">"""</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 27 </font></span> <font color="#9966ff">background</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">255</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 28 </font></span> <font color="#990033">#</font><font color="#990033"> </font><font color="#990033">setup</font><font color="#990033"> </font><font color="#990033">lights</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 29 </font></span> <font color="#9966ff">colorMode</font><font color="#990099"><strong>(</strong></font>RGB, <font color="#ff0000">255</font>, <font color="#ff0000">255</font>, <font color="#ff0000">255</font>, <font color="#ff0000">100</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 30 </font></span> <font color="#9966ff">lightSpecular</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">255</font>, <font color="#ff0000">255</font>, <font color="#ff0000">255</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 31 </font></span> <font color="#9966ff">directionalLight</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">255</font>, <font color="#ff0000">255</font>, <font color="#ff0000">255</font>, <font color="#ff0000">1</font>, <font color="#ff0000">1</font>, <font color="#990099"><strong>-</strong></font><font color="#ff0000">1</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 32 </font></span> <font color="#9966ff">shininess</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">5</font>.<font color="#ff0000">0</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 33 </font></span> <font color="#990033">#</font><font color="#990033"> </font><font color="#990033">setup</font><font color="#990033"> </font><font color="#990033">view</font><font color="#990033"> </font><font color="#990033"> </font><font color="#990033"> </font><font color="#990033"> </font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 34 </font></span> <font color="#9966ff">translate</font><font color="#990099"><strong>(</strong></font>width<font color="#990099"><strong>/</strong></font><font color="#ff0000">2</font>, height<font color="#990099"><strong>/</strong></font><font color="#ff0000">2</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 35 </font></span> <font color="#9966ff">scale</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">180</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 36 </font></span> myMesh.<font color="#9966ff">draw</font><font color="#990099"><strong>(</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 37 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 38 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 39 </font></span><font color="#006699"><strong>class</strong></font> <font color="#9966ff">MyOwnMesh</font><font color="#990099"><strong>(</strong></font>Mesh<font color="#990099"><strong>)</strong></font><font color="#006699"><strong>:</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 40 </font></span> <font color="#cc6600">"""</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 41 </font></span><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600">A</font><font color="#cc6600"> </font><font color="#cc6600">custom</font><font color="#cc6600"> </font><font color="#cc6600">python</font><font color="#cc6600"> </font><font color="#cc6600">class</font><font color="#cc6600"> </font><font color="#cc6600">that</font><font color="#cc6600"> </font><font color="#cc6600">extend</font><font color="#cc6600"> </font><font color="#cc6600">the</font><font color="#cc6600"> </font><font color="#cc6600">original</font><font color="#cc6600"> </font><font color="#cc6600">Mesh</font><font color="#cc6600"> </font><font color="#cc6600">class</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 42 </font></span><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600"> </font><font color="#cc6600">"""</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 43 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 44 </font></span> <font color="#006699"><strong>def</strong></font> <font color="#cc6600"><strong>__init__</strong></font><font color="#990099"><strong>(</strong></font><font color="#006699"><strong>self</strong></font>, theParent<font color="#990099"><strong>)</strong></font><font color="#006699"><strong>:</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 45 </font></span> Mesh.<font color="#cc6600"><strong>__init__</strong></font><font color="#990099"><strong>(</strong></font><font color="#006699"><strong>self</strong></font>, theParent<font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 46 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 47 </font></span>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 48 </font></span> <font color="#990033">#</font><font color="#990033"> </font><font color="#990033">just</font><font color="#990033"> </font><font color="#990033">override</font><font color="#990033"> </font><font color="#990033">this</font><font color="#990033"> </font><font color="#990033">function</font><font color="#990033"> </font><font color="#990033">and</font><font color="#990033"> </font><font color="#990033">put</font><font color="#990033"> </font><font color="#990033">your</font><font color="#990033"> </font><font color="#990033">own</font><font color="#990033"> </font><font color="#990033">formulas</font><font color="#990033"> </font><font color="#990033">inside</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 49 </font></span> <font color="#006699"><strong>def</strong></font> <font color="#9966ff">calculatePoints</font><font color="#990099"><strong>(</strong></font><font color="#006699"><strong>self</strong></font>, u, v<font color="#990099"><strong>)</strong></font><font color="#006699"><strong>:</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 50 </font></span> A <font color="#990099"><strong>=</strong></font> <font color="#ff0000">2</font><font color="#990099"><strong>/</strong></font><font color="#ff0000">3</font>.<font color="#ff0000">0</font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 51 </font></span> B <font color="#990099"><strong>=</strong></font> <font color="#9966ff">sqrt</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">2</font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 52 </font></span> x <font color="#990099"><strong>=</strong></font> A <font color="#990099"><strong>*</strong></font> <font color="#990099"><strong>(</strong></font><font color="#9966ff">cos</font><font color="#990099"><strong>(</strong></font>u<font color="#990099"><strong>)</strong></font> <font color="#990099"><strong>*</strong></font> <font color="#9966ff">cos</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">2</font> <font color="#990099"><strong>*</strong></font> v<font color="#990099"><strong>)</strong></font> <font color="#990099"><strong>+</strong></font> B <font color="#990099"><strong>*</strong></font> <font color="#9966ff">sin</font><font color="#990099"><strong>(</strong></font>u<font color="#990099"><strong>)</strong></font> <font color="#990099"><strong>*</strong></font> <font color="#9966ff">cos</font><font color="#990099"><strong>(</strong></font>v<font color="#990099"><strong>)</strong></font><font color="#990099"><strong>)</strong></font> <font color="#990099"><strong>*</strong></font> <font color="#9966ff">cos</font><font color="#990099"><strong>(</strong></font>u<font color="#990099"><strong>)</strong></font> <font color="#990099"><strong>/</strong></font> <font color="#990099"><strong>(</strong></font>B <font color="#990099"><strong>-</strong></font> <font color="#9966ff">sin</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">2</font> <font color="#990099"><strong>*</strong></font> u<font color="#990099"><strong>)</strong></font> <font color="#990099"><strong>*</strong></font> <font color="#9966ff">sin</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">3</font> <font color="#990099"><strong>*</strong></font> v<font color="#990099"><strong>)</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 53 </font></span> y <font color="#990099"><strong>=</strong></font> A <font color="#990099"><strong>*</strong></font> <font color="#990099"><strong>(</strong></font><font color="#9966ff">cos</font><font color="#990099"><strong>(</strong></font>u<font color="#990099"><strong>)</strong></font> <font color="#990099"><strong>*</strong></font> <font color="#9966ff">sin</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">2</font> <font color="#990099"><strong>*</strong></font> v<font color="#990099"><strong>)</strong></font> <font color="#990099"><strong>-</strong></font> B <font color="#990099"><strong>*</strong></font> <font color="#9966ff">sin</font><font color="#990099"><strong>(</strong></font>u<font color="#990099"><strong>)</strong></font> <font color="#990099"><strong>*</strong></font> <font color="#9966ff">sin</font><font color="#990099"><strong>(</strong></font>v<font color="#990099"><strong>)</strong></font><font color="#990099"><strong>)</strong></font> <font color="#990099"><strong>*</strong></font> <font color="#9966ff">cos</font><font color="#990099"><strong>(</strong></font>u<font color="#990099"><strong>)</strong></font> <font color="#990099"><strong>/</strong></font> <font color="#990099"><strong>(</strong></font>B <font color="#990099"><strong>-</strong></font> <font color="#9966ff">sin</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">2</font> <font color="#990099"><strong>*</strong></font> u<font color="#990099"><strong>)</strong></font> <font color="#990099"><strong>*</strong></font> <font color="#9966ff">sin</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">3</font> <font color="#990099"><strong>*</strong></font> v<font color="#990099"><strong>)</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#ffffff"> 54 </font></span> z <font color="#990099"><strong>=</strong></font> B <font color="#990099"><strong>*</strong></font> <font color="#9966ff">cos</font><font color="#990099"><strong>(</strong></font>u<font color="#990099"><strong>)</strong></font> <font color="#990099"><strong>*</strong></font> <font color="#9966ff">cos</font><font color="#990099"><strong>(</strong></font>u<font color="#990099"><strong>)</strong></font> <font color="#990099"><strong>/</strong></font> <font color="#990099"><strong>(</strong></font>B <font color="#990099"><strong>-</strong></font> <font color="#9966ff">sin</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">2</font> <font color="#990099"><strong>*</strong></font> u<font color="#990099"><strong>)</strong></font> <font color="#990099"><strong>*</strong></font> <font color="#9966ff">sin</font><font color="#990099"><strong>(</strong></font><font color="#ff0000">3</font> <font color="#990099"><strong>*</strong></font> v<font color="#990099"><strong>)</strong></font><font color="#990099"><strong>)</strong></font>
<span style="background:#cccccc; border-right:solid 2px black; margin-right:5px; "><font color="#990066"> 55 </font></span> <font color="#006699"><strong>return</strong></font> <font color="#9966ff">PVector</font><font color="#990099"><strong>(</strong></font>x, y, z<font color="#990099"><strong>)</strong></font>
</font></pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwKY5bqOWJfqCh7_Vjsda2DU9BgNi01ld2HCblsFn4TJV8JgxeK9pR9PVGBVv6cKJgZvdqICzkWwXgvqY8DqAjFu5P62DCW74gmpogjp5XJiVGwpRgN9ysLKzGFzkU8x3WkVrC2WN6nhqz/s1600/generative.png" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"><img border="0" height="400" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwKY5bqOWJfqCh7_Vjsda2DU9BgNi01ld2HCblsFn4TJV8JgxeK9pR9PVGBVv6cKJgZvdqICzkWwXgvqY8DqAjFu5P62DCW74gmpogjp5XJiVGwpRgN9ysLKzGFzkU8x3WkVrC2WN6nhqz/s400/generative.png" /></a></div>
monkstonehttp://www.blogger.com/profile/10339203885788088979noreply@blogger.com0tag:blogger.com,1999:blog-7042670778249660320.post-50449592073286728502012-11-25T21:23:00.003+00:002012-12-03T19:51:35.157+00:00Worked ExamplesI have today made available quite a number of worked examples at <a href="https://github.com/monkstone/processing.py-examples">github</a>. The basic examples are examples taken from the pyprocessing distribution re-worked to work on processing.py. There are examples of very basic sketches, <i>converted from the processing handbook</i>, and others that demonstrate the syntax differences between java and python (eg python for range loops vs processing/java for loops). Other examples demonstrate new processing-2.0 features in processing.py.<br />
Update 29th November, I've published more examples in a more recent posting, these include examples showing how to use the following generative and toxiclibs libraries, this code is also available at github.monkstonehttp://www.blogger.com/profile/10339203885788088979noreply@blogger.com0tag:blogger.com,1999:blog-7042670778249660320.post-39821187928605499112012-11-24T11:02:00.002+00:002013-09-11T14:09:30.167+01:00Processing.py from jEditI have revisited my jEdit tools for processing.py and greatly simplified them.
There is a commando file that will run the processing.py sketch <b>PYP5.xml</b> that is currently being edited, and a couple of bsh macros <b>PYP5.bsh</b> and <b>NEW_PYP5.bsh</b> that run the commando file or create a new processing.py sketch. The NEW_PYP5.bsh relies on you having processing.py shortcuts in your <b>abbrevs</b> file. Currently I've made these resources available as a <a href="https://gist.github.com/4139174">gist</a> and as <a href="https://github.com/monkstone/processing.py-examples">download</a>. <br />
Use the abbrevs file to modify an existing abbrevs file in the .jedit folder, edit as you wish. Put the macros in .jedit/macros folder and the PYP5.xml in .jedit/console/commando folder (you will of course needed to install the jEdit console plugin).<br />
<br />
<u>Using the Macros </u><br />
<br />
Once installed you will find you can access the macros via the jEdit menu-bar, or a shortcut key if you wish. The sketch path is picked up form the displayed buffer (so any new sketch should be saved). You need only set the path to java and path to the processing.py jar once as they will be "remembered" in subsequent runs, easy peasy. Click on the Commands tab to see what options are included on the command line (modify the PYP5.xml commando file if you need to send args at runtime).<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5XhRMb1nZ4ZAoSYHWXPTrytOpzCydgKNyl5uf0clmf_E2iyYz7oi80ABF9trDTnpMIQ6BCpPk2uXehPzLdMM1_acCCg73Pebsu3UnNdAmAnV9Z8WFau_d2a2D5_TKVmSs4KjYp5vMtV_G/s1600/commando.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="259" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5XhRMb1nZ4ZAoSYHWXPTrytOpzCydgKNyl5uf0clmf_E2iyYz7oi80ABF9trDTnpMIQ6BCpPk2uXehPzLdMM1_acCCg73Pebsu3UnNdAmAnV9Z8WFau_d2a2D5_TKVmSs4KjYp5vMtV_G/s400/commando.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The PYP5 commando dialog box (loaded by PYP5.bsh macro)</td></tr>
</tbody></table>
<br />
<b>Since updated <a href="http://secondcomingforprocessingpy.blogspot.co.uk/2013_09_01_archive.html">here</a>.</b>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQFiV_70u1WrFXKeO0bOGsluo7SgHR6JItv7EgPZyPWSxsH03YX0s9WVDsOxsj6O9Wm_x2G-jBn6TzadmYmrgRCfQ67X66GwfotaYDFtGb7d2HD0vH_IG3zYS4FfYpvuXy7DU4SncAFVw9/s1600/nebula.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQFiV_70u1WrFXKeO0bOGsluo7SgHR6JItv7EgPZyPWSxsH03YX0s9WVDsOxsj6O9Wm_x2G-jBn6TzadmYmrgRCfQ67X66GwfotaYDFtGb7d2HD0vH_IG3zYS4FfYpvuXy7DU4SncAFVw9/s640/nebula.png" width="555" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Running processing.py from jedit (pre processing-2.0b7 core.jar)</td></tr>
</tbody></table>
monkstonehttp://www.blogger.com/profile/10339203885788088979noreply@blogger.com0tag:blogger.com,1999:blog-7042670778249660320.post-59280487430018171382012-11-24T09:04:00.002+00:002012-12-03T19:46:31.844+00:00Getting StartedTo get the latest version of processing.py you should install <a href="http://git-scm.com/">git</a> if you are on some debian version of linux sudo apt-get install git, otherwise you can download git for windows mac etc <a href="http://git-scm.com/downloads">here</a>. I would also recommend that you get and install the latest version of openjdk-7 and apache-ant.<br />
To be at the bleeding edge you will also need the latest <a href="http://www.jython.org/index.html">jython-standalone.jar</a>, the latest jars from processing where *** is your os/arch (svn download processing <a href="http://code.google.com/p/processing/source/checkout">here</a>). Get the latest processing.py <a href="https://github.com/jdf/processing.py">here</a>.<br />
<br />
<ul>
<li>core.jar</li>
<li>opengl.jar</li>
<li>jogl-all.jar</li>
<li>jogl-all-natives-***.jar</li>
<li>gluegen-rt.jar</li>
<li>gluegen-rt-natives***.jar</li>
</ul>
The core.jar belongs in the <b>processing.py/buildtime/lib/processing</b> folder, the other jars belong in <b>processing.py/libraries/processing/opengl</b> folder (but I guess that might/should change). The jython-standalone.jar (as jython.jar) belongs in the <b>processing.py/buildtime/lib/jython</b> folder. Just run "ant clean" and "ant" in the processing.py directory to re-compile processing.py. You could follow instruction at <a href="https://github.com/jdf/processing.py">processing.py</a> or run processing.py from jEdit as described in my next posting.
monkstonehttp://www.blogger.com/profile/10339203885788088979noreply@blogger.com0tag:blogger.com,1999:blog-7042670778249660320.post-28828117798693530832012-11-24T08:19:00.000+00:002014-03-31T21:07:41.848+01:00Before the Beginning<br />
<ul>
<li><a href="http://en.wikipedia.org/wiki/Guido_van_Rossum">Guido Van Rossum</a> created the language of python, to this day he remains the benevolent dictator for life (but he is also mortal). Read his history of python <a href="http://python-history.blogspot.co.uk/">here</a>.</li>
<li>Jim Hugunin invented JPython and was the primary developer while he was at CNRI. In February 1999, Jim left CNRI for sunny California and Barry Warsaw became the primary maintainer. When Barry and the rest of PythonLabs left CNRI, Barry renamed JPython to Jython, put the sources on SourceForge and made Finn Bock the primary maintainer. Many others are now involved with the project.</li>
<li>Python's inventor Guido van Rossum and the rest of PythonLabs continues to help and support Jython by their understanding of how Jython must live with the limits of Java.</li>
<li>Ben Fry and Casey Reas developed <a href="http://processing.org/">processing</a> using java</li>
<li>Jonathan Feinberg developed <a href="https://github.com/jdf/processing.py">processing.py</a></li>
</ul>
<div>
Both python and processing are at turning points, with Guido pushing for a transition to versions 3+ from the 2 series, and processing going from processing-1.5.1 to processing-2.0. Processing.py depends on java processing, and currently Jonathan has made preparations to transition to processing-2.0. However processing.py also depends on jython so is stuck with its latest incarnation, that shows no signs of transitioning to python-3 any time soon. The latest released version of jython, as of spring 2013 is <a href="http://www.jython.org/">jython-2.5.3</a> (or jython-2.7b1 alpha version). This is not fatal negative but it is just a bit unfortunate (jruby in contrast is much more up to date, and their developers are actively involved with improving the jvm).<br />
Since processing-2.0 there is no support for the export of java (web) applets, and so there are fewer reasons to prefer regular processing over processing.py.<br />
<br />
Something I think worth mentioning here is that contrary to a lot of ill informed opinion java and certainly the jvm is not going away anytime soon (<i>despite one might think of concerted efforts from Microsoft and Apple, and since the openjdk initiative nor are they at the mercy of the whims of Oracle</i>). Also despite possible performance problems with jython in the past, in my experience is that it is not as fast as pypy but it probably outperforms cpython. Furthermore processing.py outperforms pyprocessing even when the latter is compiled with pypy.</div>
See my experience with latest update <a href="http://secondcomingforprocessingpy.blogspot.co.uk/">here</a>, why aren't people navigating beyond my opening post?monkstonehttp://www.blogger.com/profile/10339203885788088979noreply@blogger.com0