---- # sketch-a-day ### one visual idea a day [[on GitHub!](https://github.com/villares/sketch-a-day)] Hi! I'm [Alexandre Villares](https://abav.lugaralgum.com), let's see if I can make one small program (*sketch*) a day. I'm working mostly with [Processing Python Mode](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN) and sometimes [Processing Java Mode](https://processing.org) and [P5JS (JavaScript)](p5js.org) or other stuff. If you enjoy this, make a small donation [here](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=HCGAKACDMVNV2) or with [Patreon](https://patreon.com/arteprog) --- ![s204](s204/s204.png) 204: [code](https://github.com/villares/sketch-a-day/tree/master/s204) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s203](s203/s203.gif) 203: [code](https://github.com/villares/sketch-a-day/tree/master/s203) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s202](s202/s202.png) 202: [code](https://github.com/villares/sketch-a-day/tree/master/s202) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s201](s201/s201.gif) 201: [code](https://github.com/villares/sketch-a-day/tree/master/s201) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s200](s200/s200.gif) 200: [code](https://github.com/villares/sketch-a-day/tree/master/s200) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s199](s199/s199.gif) 199: [code](https://github.com/villares/sketch-a-day/tree/master/s199) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s198](s198/s198.gif) 198: [code](https://github.com/villares/sketch-a-day/tree/master/s198) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s197](s197/s197.gif) 197: [code](https://github.com/villares/sketch-a-day/tree/master/s197) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s196](s196/s196.gif) 196: [code](https://github.com/villares/sketch-a-day/tree/master/s196) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s195](s195/s195.gif) 195: [code](https://github.com/villares/sketch-a-day/tree/master/s195) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s194](s194/s194.gif) 194: [code](https://github.com/villares/sketch-a-day/tree/master/s194) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s193](s193/s193.gif) 193: [code](https://github.com/villares/sketch-a-day/tree/master/s193) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s192](s192/s192_73.gif) 192: [code](https://github.com/villares/sketch-a-day/tree/master/s192) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s191](s191/s191b.gif) 191: [code](https://github.com/villares/sketch-a-day/tree/master/s191) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s190](s190/s190b.gif) 190: [code](https://github.com/villares/sketch-a-day/tree/master/s190) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s189](s189/s189.gif) 189: [code](https://github.com/villares/sketch-a-day/tree/master/s189) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s188](s188/s188.gif) 188: [code](https://github.com/villares/sketch-a-day/tree/master/s188) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s187](s187/s187.gif) 187: [code](https://github.com/villares/sketch-a-day/tree/master/s187) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s186gif](s186gif/s186.gif) ![s186](s186/s186.png) 186: [code](https://github.com/villares/sketch-a-day/tree/master/s186) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s185](s185/s185.png) 185: [code](https://github.com/villares/sketch-a-day/tree/master/s185) [[Processing Java](https://www.processing.org)] --- ![s184](s184/s184.png) 184: [code](https://github.com/villares/sketch-a-day/tree/master/s184) [[Processing Java](https://www.processing.org)] --- ![s183](s183/s183.png) 183: [code](https://github.com/villares/sketch-a-day/tree/master/s183) [[Processing Java](https://www.processing.org)] --- ![s182](s182/s182.png) 182: [code](https://github.com/villares/sketch-a-day/tree/master/s182) [[Processing Java](https://www.processing.org)] --- ![s181](s181/s181.png) 181: [code](https://github.com/villares/sketch-a-day/tree/master/s181) [[Processing Java](https://www.processing.org)] --- ![s180](s180/s180.gif) ``` def set_nbs(self): self.nbs, self.unvisited_nbs = [], [] for node in Node.nodes: if node != self and dist(node.x, node.y, node.z, self.x, self.y, self.z) <= Node.spacing * 1.1: self.nbs.append(node) self.unvisited_nbs.append(node) ``` ![s180b](s180/s180b.gif) ``` if node != self and dist(node.x, node.y, node.z, self.x, self.y, self.z) <= Node.spacing * 1.5: ``` 180: [code](https://github.com/villares/sketch-a-day/tree/master/s180) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s179COLOR](s179/COR_s179.png) ![s179PB](s179/PB_s179.png) 179: [code](https://github.com/villares/sketch-a-day/tree/master/s179) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s178](s178/s178.jpg) 178: [code](https://github.com/villares/sketch-a-day/tree/master/s178) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s177](s177/s177.png) 177: [code](https://github.com/villares/sketch-a-day/tree/master/s177) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s176](s176/s176.png) 176: [code](https://github.com/villares/sketch-a-day/tree/master/s176) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s175](s175/s175.gif) 175: [code](https://github.com/villares/sketch-a-day/tree/master/s175) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s174](s174/s174.png) 174: [code](https://github.com/villares/sketch-a-day/tree/master/s174) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s173](s173/s173.png) 173: [code](https://github.com/villares/sketch-a-day/tree/master/s173) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s172](s172/s172.png) 172: [code](https://github.com/villares/sketch-a-day/tree/master/s172) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s171](s171/s171.png) 171:[Java code](https://github.com/villares/sketch-a-day/tree/master/s171)[[Processing Java](https://processing.org)] & [Python code](https://github.com/villares/sketch-a-day/tree/master/s171_py) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s170](s170/s170.png) 170:[code](https://github.com/villares/sketch-a-day/tree/master/s170) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s169](s169/s169.png) 169:[code](https://github.com/villares/sketch-a-day/tree/master/s169) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Now same Z lines can form floors. ---- ![s168](s168/s168.png) 168:[code](https://github.com/villares/sketch-a-day/tree/master/s168) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] No random movement in Z so no line connections between different (Z) levels. Comparing lines with different Zs to create translucent 'walls'. ---- ![s167](s167/s167.gif) 167: [Java code](https://github.com/villares/sketch-a-day/tree/master/s167) [[Processing Java](https://processing.org)] & [Python code](https://github.com/villares/sketch-a-day/tree/master/s167_py) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s166](s166/s166.png) 166: [code](https://github.com/villares/sketch-a-day/tree/master/s166) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s165](s165/s165.png) 165: [code](https://github.com/villares/sketch-a-day/tree/master/s165) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s164](s164/s164.png) 164: [code](https://github.com/villares/sketch-a-day/tree/master/s164) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s163](s163/s163.gif) 163: [code](https://github.com/villares/sketch-a-day/tree/master/s163) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] (#152 revisited in 3D :) ---- ![s162](s162/s162.png) 162: [code](https://github.com/villares/sketch-a-day/tree/master/s161) [[Processing Java](https://www.processing.org)] Perlin Noise "walker" + ? ---- ![s161](s161/s161.png) 161: [code](https://github.com/villares/sketch-a-day/tree/master/s161) [[Processing Java](https://www.processing.org)] Perlin Noise "walker" + eye ---- ![s160](s160/s160.gif) 160: [code](https://github.com/villares/sketch-a-day/tree/master/s160) [[Processing Java](https://www.processing.org)] Interactive genetic algorithm ---- ![s159](s159/s159.gif) 159: [code](https://github.com/villares/sketch-a-day/tree/master/s158) [[Processing Java](https://www.processing.org)] ---- ![s158](s158/s158b.gif) 158: [code](https://github.com/villares/sketch-a-day/tree/master/s158) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s157](s157/s157.gif) 157: [code](https://github.com/villares/sketch-a-day/tree/master/s156) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s156](s156/s156.gif) 156: [code](https://github.com/villares/sketch-a-day/tree/master/s156) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s155](s155/s155.gif) 155: [code](https://github.com/villares/sketch-a-day/tree/master/s155) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s154](s154/s154.gif) 154: [code](https://github.com/villares/sketch-a-day/tree/master/s154) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s153](s153/s153.gif) 153: [code](https://github.com/villares/sketch-a-day/tree/master/s153) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s152](s152/s152.gif) 152: [code](https://github.com/villares/sketch-a-day/tree/master/s152) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s151](s151/s151.gif) 151: [code](https://github.com/villares/sketch-a-day/tree/master/s151) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s150](s150/s150.png) 150: [code](https://github.com/villares/sketch-a-day/tree/master/s150) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s149b](s149b/s149b.gif) 149b: [code](https://github.com/villares/sketch-a-day/tree/master/s149b) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s149](s149/s149.gif) 149: [code](https://github.com/villares/sketch-a-day/tree/master/s149) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s148](s148/s148.gif) 148: [code](https://github.com/villares/sketch-a-day/tree/master/s148) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s147](s147/s147.gif) 147: [code](https://github.com/villares/sketch-a-day/tree/master/s147) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s146](s146/s146.gif) 146: [code](https://github.com/villares/sketch-a-day/tree/master/s146) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s145](s145/s145.png) 145: [code](https://github.com/villares/sketch-a-day/tree/master/s145) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s144](s144/s144.gif) 144: [code](https://github.com/villares/sketch-a-day/tree/master/s144) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s143](s143/s143.png) 143: [code](https://github.com/villares/sketch-a-day/tree/master/s143) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s140 + s141 + s142](s140_s141_s142/s140_s141_s142.png) 140 + 141 + 142 [code](https://github.com/villares/sketch-a-day/tree/master/s140_s141_s142) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s142](s142/s142.png) 142: [code](https://github.com/villares/sketch-a-day/tree/master/s142) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s141](s141/s141.png) 141: [code](https://github.com/villares/sketch-a-day/tree/master/s141) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s140](s140/s140.gif) s140: [code](https://github.com/villares/sketch-a-day/tree/master/s140) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s139](s139/s139.gif) s139: [code](https://github.com/villares/sketch-a-day/tree/master/s139) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- ![s138](s138/s138.png) 138: [code](https://github.com/villares/sketch-a-day/tree/master/s138) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Revisiting ideas of recursion from s071 Heavy animated GIF: [s138.gif](s138/s138.gif) ---- ![s137](s137/s137.png) s137: [code](https://github.com/villares/sketch-a-day/tree/master/s137) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] PDF: [diagram.pdf](s137/diagram.pdf) ---- ![s136](s136/s136.png) 136: [code](https://github.com/villares/sketch-a-day/tree/master/s136) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s135](s135/s135.png) 135: [code](https://github.com/villares/sketch-a-day/tree/master/s135) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s134](s134/s134.png) 134: [code](https://github.com/villares/sketch-a-day/tree/master/s134) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s133](s133/s133.png) 133: [code](https://github.com/villares/sketch-a-day/tree/master/s133) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s132](s132/s132.png) 132: [code](https://github.com/villares/sketch-a-day/tree/master/s132) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s131](s131/s131.gif) 131: [code](https://github.com/villares/sketch-a-day/tree/master/s131) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s130](s130/s130.gif) 130: [code](https://github.com/villares/sketch-a-day/tree/master/s130) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s129](s129/s129.gif) 129: [code](https://github.com/villares/sketch-a-day/tree/master/s129) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Maybe I fixed it, I guess, not sure… ---- ![s128](s128/s128.gif) 128: [code](https://github.com/villares/sketch-a-day/tree/master/s128) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] BROKEN! ---- ![s127](s127/s127.gif) 127: [code](https://github.com/villares/sketch-a-day/tree/master/s127) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s126](s126/s126.gif) 126: [code](https://github.com/villares/sketch-a-day/tree/master/s126) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s125](s125/s125b.gif) 125: [code](https://github.com/villares/sketch-a-day/tree/master/s125) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s124](s124/s124.gif) 124: [code](https://github.com/villares/sketch-a-day/tree/master/s124) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s123](s123/s123.gif) 123: [code](https://github.com/villares/sketch-a-day/tree/master/s123) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s122](s122/s122.gif) 122: [code](https://github.com/villares/sketch-a-day/tree/master/s122) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s121](s121/s121.gif) 121: [code](https://github.com/villares/sketch-a-day/tree/master/s121) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s120](s120/s120.gif) 120: [code](https://github.com/villares/sketch-a-day/tree/master/s120) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] To be brutally honest, I had no idea that reversing the second random grid would bring me this result! ---- ![s119](s119/s119.gif) 119: [code](https://github.com/villares/sketch-a-day/tree/master/s119) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s118](s118/s118.gif) 118: [code](https://github.com/villares/sketch-a-day/tree/master/s118) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s117](s117/s117.gif) 117: [code](https://github.com/villares/sketch-a-day/tree/master/s117) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s116](s116/s116.gif) 116: [code](https://github.com/villares/sketch-a-day/tree/master/s116) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s115](s115/s115.gif) 115: [code](https://github.com/villares/sketch-a-day/tree/master/s115) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s114](s114/s114.gif) 114: [code](https://github.com/villares/sketch-a-day/tree/master/s114) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s113](s113/s113.gif) 113: [code](https://github.com/villares/sketch-a-day/tree/master/s113) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ---- ![s112](s112/s112.gif) 112: [code](https://github.com/villares/sketch-a-day/tree/master/s112) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Hexagons! ​```python def hexagon(x, y, r): with pushMatrix(): translate(x, y) beginShape() for i in range(6): vx = cos(i * TWO_PI /6) * r vy = sin(i * TWO_PI /6) * r vertex(vx, vy) endShape(CLOSE) ``` ---- ![s111](s111/s111.gif) 111: [code](https://github.com/villares/sketch-a-day/tree/master/s111) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Now I 'fixed' the rotation with propper pushMatrix() and translate() ​```python with pushMatrix(): translate(x0,y0) rotate(fs0) stroke(st0) equilateral(0, 0, fs0) with pushMatrix(): translate(x1,y1) rotate(fs1) stroke(st1) equilateral(0, 0, fs1) with pushMatrix(): translate(x2,y2) rotate(fs2) stroke(st2) equilateral(0, 0, fs2) ``` ---- ![s110](s110/s110.gif) 110: [code](https://github.com/villares/sketch-a-day/tree/master/s110) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Just added some rotations to mess things up. It's "wrong", but I like it! ```python rotate(fs0) stroke(st0) equilateral(x0, y0, fs0) stroke(st1) rotate(fs1) equilateral(x1, y1, fs1) stroke(st2) rotate(fs2) equilateral(x2, y2, fs2) ``` ---- ![s109](s109/s109.gif) 109: [code](https://github.com/villares/sketch-a-day/tree/master/s109) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ```python colorMode(HSB) ... C = color(map(final_size,-63 , 63, 0, 255), 255, 255) ``` ---- ![s108](s108/s108.gif) 108: [code](https://github.com/villares/sketch-a-day/tree/master/s108) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ```python colorMode(HSB) ... C = color(map(abs(final_size), 0, 63, 0, 255), 255, 255) ``` ---- ![s107](s107/s107.gif) 107: [code](https://github.com/villares/sketch-a-day/tree/master/s107) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Inverting odd rows ```python v = spac_size * 1.5 h = spac_size * sqrt(3) for ix in range(-1, grid_elem + 1): for iy in range(-1, grid_elem + 1): if iy % 2: x = ix * h + h / 4 es = elem_size else: x = ix * h - h / 4 es = -elem_size y = iy * v for i in range(3): final_size = es * (i + 0.5) C = map(final_size, 0, 63, 0, 255) oX = rand_posi * random(-1, 1) oY = rand_posi * random(-1, 1) ELEMENTS.append((C, x + oX, y + oY, final_size)) ``` ---- ![s106](s106/s106.gif) 106: [code](https://github.com/villares/sketch-a-day/tree/master/s106) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Lazy triangles ```python def equilateral(x, y, r): with pushMatrix(): translate(x, y) triangle(-0.866 * r, -0.5 * r, 0.866 * r, -0.5 * r, 0.000 * r, 1.0 * r) # I know... 0 * r and 1 * r... ``` ---- ![s105](s105/s105.gif) 105: [code](https://github.com/villares/sketch-a-day/tree/master/s105) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Layers now have different "base" sizes (0.5, 1.5 and 2.5 times base size). Removed lines for now. ---- ![s104](s104/s104.gif) 104: [code](https://github.com/villares/sketch-a-day/tree/master/s104) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Back to stroke variation ---- ![s103](s103/s103.gif) 103: [code](https://github.com/villares/sketch-a-day/tree/master/s103) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Layers but only black strokes ```python spac_size = width / (grid_elem + 1) v = spac_size * 1.5 h = spac_size * sqrt(3) for ix in range(-1, grid_elem + 1): for iy in range(-1, grid_elem + 1): if iy % 2: x = ix * h + h / 4 else: x = ix * h - h / 4 y = iy * v for i in range(3): final_size = elem_size + rand_size * random(-1, 1) ELEMENTS.append((x, y, final_size)) # three layers of elements for i in range(3): offsetX = rand_posi * random(-1, 1) offsetY = rand_posi * random(-1, 1) for elem in ELEMENTS[i::3]: x, y, es = elem ellipse(x + offsetX, y + offsetY, es, es) for _ in range(grid_elem): x1, y1, es1 = rnd_choice(ELEMENTS) x2, y2, es2 = rnd_choice(ELEMENTS) line(x1, y1, x2, y2) ``` ---- ![s102](s102/s102.gif) 102: [code](https://github.com/villares/sketch-a-day/tree/master/s102) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ```python spac_size = width / (grid_elem + 1) v = spac_size * 1.5 h = spac_size * sqrt(3) for ix in range(-1, grid_elem + 1): for iy in range(-1, grid_elem + 1): if iy % 2: x = ix * h + h / 4 else: x = ix * h - h / 4 y = iy * v final_size = elem_size + rand_size * random(-1, 1) offsetX = rand_posi * random(-1, 1) offsetY = rand_posi * random(-1, 1) C = map(final_size, 0, 63, 0, 255) ELEMENTS.append((C, x + offsetX, y + offsetY, final_size )) for elem in ELEMENTS: stroke1, x1, y1, es1 = elem ellipse(x1, y1, es1, es1) for _ in range(grid_elem): stroke1, x1, y1, es1 = rnd_choice(ELEMENTS) stroke2, x2, y2, es2 = rnd_choice(ELEMENTS) stroke(stroke2) line(x1, y1, x2, y2) ``` ---- ![s101](s101/s101.gif) 101: [code](https://github.com/villares/sketch-a-day/tree/master/s101) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ```python for _ in range(grid_elem * 2): stroke1, x1, y1, es1 = rnd_choice(ELEMENTS) stroke(stroke1) ellipse(x1, y1, es1, es1) stroke2, x2, y2, es2 = rnd_choice(ELEMENTS) stroke(stroke2) # line ellipse(x2, y2, es2, es2) line(x1, y1, x2, y2) ``` ---- ![s100](s100/s100.gif) 100: [code](https://github.com/villares/sketch-a-day/tree/master/s100) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ```python spac_size = int(width / (grid_elem + 1)) for _ in range(2): for x in range(spac_size / 2, width, spac_size): for y in range(spac_size / 2, width, spac_size): final_size = elem_size + rand_size * random(-1, 1) offsetX = rand_posi * random(-1, 1) offsetY = rand_posi * random(-1, 1) C = map(final_size, 0, 63, 0, 255) ELEMENTS.append((C, x + offsetX, y + offsetY, final_size )) for stroke_c, x, y, el_size in ELEMENTS: stroke(stroke_c) ellipse(x, y, el_size, el_size) for _ in range(grid_elem): stroke_c, x1, y1, _ = rnd_choice(ELEMENTS) ________, x2, y2, _ = rnd_choice(ELEMENTS) stroke(stroke_c) line(x1, y1, x2, y2) ``` ---- ![s099](s099/s099.gif) 099: [code](https://github.com/villares/sketch-a-day/tree/master/s099) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ```python spac_size = int(width / (grid_elem + 1)) for x in range(spac_size / 2, width, spac_size): for y in range(spac_size / 2, width, spac_size): final_size = elem_size + rand_size * random(-1, 1) offsetX = rand_posi * random(-1, 1) offsetY = rand_posi * random(-1, 1) GREY = map(final_size, 0, 63, 0, 255) stroke(GREY) ellipse(x + offsetX, # desenha um círculo y + offsetY, final_size, final_size) ``` ---- ![s098](s098/s098.gif) 098: [code](https://github.com/villares/sketch-a-day/tree/master/s098) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ```python spac_size = int(width / (grid_elem + 1)) for x in range(spac_size / 2, width, spac_size): for y in range(spac_size / 2, width, spac_size): square_size = elem_size + rand_size * random(-1, 1) offsetX = rand_posi * random(-1, 1) offsetY = rand_posi * random(-1, 1) HUE = map(offsetX + offsetY, -128, 127, 0, 255) SAT = map(square_size, 0, 63, 0, 255) fill(HUE, SAT, 255, 200) rect(x + offsetX, # desenha um quadrado y + offsetY, square_size, square_size) ``` ---- ![s097](s097/s097.gif) 097: [code](https://github.com/villares/sketch-a-day/tree/master/s097) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ```python spac_size = int(width / (grid_elem + 1)) for x in range(spac_size / 2, width, spac_size): for y in range(spac_size / 2, width, spac_size): # sorteia um tamanho (se o rand_size > 0) square_size = elem_size + rand_size * random(-1, 1) rect(x + rand_posi * random(-1, 1), # desenha um quadrado y + rand_posi * random(-1, 1), square_size, square_size) ``` ---- ![s096](s096/s096.gif) 096: [code](https://github.com/villares/sketch-a-day/tree/master/s096) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] More 'Inputs' helper changes (WASD & arrows for sliders). New GIF export helper actually works now! More lone nodes and edge creation changes... ---- ![s095](s095/s095.gif) 095: [code](https://github.com/villares/sketch-a-day/tree/master/s095) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Complete rewrite of the 'Inputs' helper ``` # Ask user for Arduino port, uses slider if none is selected, use on `setup()` global input input = Input(Arduino) # on `draw()`read analog pins 1, 2, 3, 4 or sliders pot1 = input.analog(1) pot2 = input.analog(2) pot3 = input.analog(3) pot4 = input.analog(4) tilt = input.digital(13) # also triggered by [space bar] # When on sliders, this draws them and checks mouse dragging / keystrokes input.update() ``` ---- ![s094](s094/s094.gif) 094: [code](https://github.com/villares/sketch-a-day/tree/master/s094) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Connection 'rate' can be less than 1, prevents less than 2 nodes ---- ![s093](s093/s093.gif) 093: [code](https://github.com/villares/sketch-a-day/tree/master/s093) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Nodes without connection are now removed ``` COM_ARESTAS = set() # para guardar pontos com aresta for aresta in Aresta.ARESTAS: if (aresta.p1 not in Ponto.SET) or (aresta.p2 not in Ponto.SET)\ or (aresta.p1 is aresta.p2): # arestas degeneradas Aresta.ARESTAS.remove(aresta) # remove a aresta else: # senão, tudo OK! aresta.desenha() # desenha a linha aresta.puxa_empurra(TAM_ARESTA) # altera a velocidade dos pontos # Adiciona ao conjunto de pontos com aresta COM_ARESTAS.update([aresta.p1, aresta.p2]) Ponto.SET = COM_ARESTAS # isto remove pontos sem nenhuma aresta ``` ---- ![s092](s092/s092.gif) 092: [code](https://github.com/villares/sketch-a-day/tree/master/s092) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Dynamic change of connection rate ``` if NUM_PONTOS * NUM_CONNECT > len(Aresta.ARESTAS): rnd_choice(list(Ponto.SET)).cria_arestas() elif NUM_PONTOS * NUM_CONNECT < len(Aresta.ARESTAS): Aresta.ARESTAS.remove(rnd_choice(Aresta.ARESTAS)) ``` ---- ![s091](s091/s091.gif) 091: [code](https://github.com/villares/sketch-a-day/tree/master/s091) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Major rethink of my Arduino/Firmata code. I can now choose on start between sliders and potentiometers. ---- ![s090](s090/s090.gif) 090: [code](https://github.com/villares/sketch-a-day/tree/master/s090) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Opaque strokes, no fill, randomized colours by column. ---- ![s089](s089/s089.gif) 089: [code](https://github.com/villares/sketch-a-day/tree/master/s089) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] X stroke now is translucent and grid elements have random colour inside grids. ---- ![s088](s088/s088.gif) 088: [code](https://github.com/villares/sketch-a-day/tree/master/s088) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Filled rects, ellipses and losangles (without sktroke) and Xs ---- ![s087](s087/s087.gif) 087: [code](https://github.com/villares/sketch-a-day/tree/master/s087) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] No fill again, less colours. Variable/random number of elements per grid. ---- ![s086](s086/s086.gif) 086: [code](https://github.com/villares/sketch-a-day/tree/master/s086) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Translucent fill & some stroke weight ---- ![s085](s085/s085.gif) 085: [code](https://github.com/villares/sketch-a-day/tree/master/s085) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Some colour, and some crazy meddling with the Slider class... ---- ![s084](s084/s084.gif) 084: [code](https://github.com/villares/sketch-a-day/tree/master/s084) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Make the grid's position/origin align based on the spacing size (super- grid) ---- ![s083](s083/s083.gif) 083: [code](https://github.com/villares/sketch-a-day/tree/master/s083) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Xs and rotated rectangles ---- ![s082](s082/s082.gif) 082: [code](https://github.com/villares/sketch-a-day/tree/master/s082) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Squares and ellipses ---- ![s081](s081/s081.gif) 081: [code](https://github.com/villares/sketch-a-day/tree/master/s081) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Let's try some grids ---- ![s080](s080/s080.gif) 080: [code](https://github.com/villares/sketch-a-day/tree/master/s080) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] More arrows (black and white alternate by generation) ---- ![s079](s079/s079.gif) 079: [code](https://github.com/villares/sketch-a-day/tree/master/s079) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Arrows (right black, left white) ---- ![s078](s078/s078.gif) 078: [code](https://github.com/villares/sketch-a-day/tree/master/s078) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Color ---- ![s077](s077/s077.gif) 077: [code](https://github.com/villares/sketch-a-day/tree/master/s077) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Random branch reduction is now less simmetric, and random seed changes on depth change. ---- ![s076](s076/s076.gif) 076: [code](https://github.com/villares/sketch-a-day/tree/master/s076) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Stroke weight and some transparency ---- ![s075](s075/s075.gif) 075: [code](https://github.com/villares/sketch-a-day/tree/master/s075) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ... and slightly different parameters and recursion level control instead of lenght ---- ![s074](s074/s074.gif) 074: [code](https://github.com/villares/sketch-a-day/tree/master/s074) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Adaptomg Shiffmans recusive Tree, with sliders or Pots... ---- ![s073](s073/s073.gif) 073: [code](https://github.com/villares/sketch-a-day/tree/master/s073) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] The code remains ugly :( ---- ![s072](s072/s072.gif) 072: [code](https://github.com/villares/sketch-a-day/tree/master/s072) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Let's mix some arrows? ---- ![s071](s071/s071.gif) 071: [code](https://github.com/villares/sketch-a-day/tree/master/s071) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Thicker and with a saturation slider (no more scale offset) ---- ![s070](s070/s070.gif) 070: [code](https://github.com/villares/sketch-a-day/tree/master/s070) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Thicker and with a saturation slider (no more scale offset) ---- ![s069](s069/s069.gif) 069: [code](https://github.com/villares/sketch-a-day/tree/master/s069) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Added rotation. ---- ![s068](s068/s068.gif) 068: [code](https://github.com/villares/sketch-a-day/tree/master/s068) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] ... and with sliders (by [Peter Farell](https://github.com/hackingmath/python-sliders)) ---- ![s067](s067/s067.gif) 067: [code](https://github.com/villares/sketch-a-day/tree/master/s067) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Something else. ---- ![s066](s066/s066.gif) 066: [code](https://github.com/villares/sketch-a-day/tree/master/s066) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Arrow grid networks can be sized and placed... ---- ![s065](s065/s065.gif) 065: [code](https://github.com/villares/sketch-a-day/tree/master/s065) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Arrow grid networks are now objects... ---- ![s064](s064/s064.gif) 064: [code](https://github.com/villares/sketch-a-day/tree/master/s064) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Revisiting yet an older graph, adding arrows... ---- ![s063](s063/s063.gif) 063: [code](https://github.com/villares/sketch-a-day/tree/master/s063) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Revisiting an older graph adding arrows... ---- ![s062](s062/s062.gif) 062: [code](https://github.com/villares/sketch-a-day/tree/master/s062) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] `+` and `-` keys control the distange/range of targes in 0.5 * SPACING increments ---- ![s061](s061/s061.gif) 061: [code](https://github.com/villares/sketch-a-day/tree/master/s061) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Sometimes we have multiple arrows now out of each node...But I reduced the range (distance) they can point to. ---- ![s060](s060/s060.gif) 060: [code](https://github.com/villares/sketch-a-day/tree/master/s060) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Complete Object Oriented refactor... ---- ![s059](s059/s059.gif) 059: [code](https://github.com/villares/sketch-a-day/tree/master/s059) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Back to a list of points, now every point of the grid has a node. Limited points_to random each. ---- ![s058](s058/s058.gif) 058: [code](https://github.com/villares/sketch-a-day/tree/master/s058) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Now with some deepcopy of changeable imutable namedtuples (containing mutable lists), and some lerp() ---- ![s057](s057/s057.gif) 057: [code](https://github.com/villares/sketch-a-day/tree/master/s057) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Revisited 54 and now I'm re-selecting random points_to nodes... ---- ![s056](s056/s056.gif) 056: [code](https://github.com/villares/sketch-a-day/tree/master/s056) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Arrow grid moving in HSB colour space ---- ![s055](s055/s055.png) 055: [code](https://github.com/villares/sketch-a-day/tree/master/s055) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Grid revisited ---- ![s054](s054/s054.gif) 054: [code](https://github.com/villares/sketch-a-day/tree/master/s054) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] New arrows! With a "Tail" parameter... ---- ![s053](s053/s053.png) 053: [code](https://github.com/villares/sketch-a-day/tree/master/s053) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Big invisible refactor (no more point-grid to select from, now a list of possible X and Y positons to choose). On the visible side, fewer elements, and non-pointing elements redrawn in red on top. ---- ![s052](s052/s052.png) 052: [code](https://github.com/villares/sketch-a-day/tree/master/s052) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] White lines first, black arrows on top. ---- ![s051](s051/s051.gif) 051: [code](https://github.com/villares/sketch-a-day/tree/master/s051) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Points now on a grid. ---- ![s050](s050/s050.gif) 050: [code](https://github.com/villares/sketch-a-day/tree/master/s050) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Arrows now... ---- ![s049](s049/s049.gif) 049: [code](https://github.com/villares/sketch-a-day/tree/master/s049) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Yet more graphs ---- ![s048](s048/s048.gif) 048: [code](https://github.com/villares/sketch-a-day/tree/master/s048) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Yet more graphs ---- ![s047](s047/s047.gif) 047: [code](https://github.com/villares/sketch-a-day/tree/master/s047) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Yet more graphs ---- ![s046](s046/s046.png) 046: [code](https://github.com/villares/sketch-a-day/tree/master/s046) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Yet more graphs ---- ![s045](s045/s045.gif) 045: [code](https://github.com/villares/sketch-a-day/tree/master/s045) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Yet more graphs ---- ![s044](s044/s044.gif) 044: [code](https://github.com/villares/sketch-a-day/tree/master/s044) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] More graphs ---- ![s043](s043/s043.png) 043: [code](https://github.com/villares/sketch-a-day/tree/master/s043) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] More graphs ---- ![s042](s042/s042.gif) 042: [code](https://github.com/villares/sketch-a-day/tree/master/s042) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Yet another interactive recursive thingy, the image on the right is shown with a key pressed ---- ![s041](s041/s041.png) 041: [code](https://github.com/villares/sketch-a-day/tree/master/s041) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Yet another interactive recursive thingy, the image on the right is shown with a key pressed ---- ![040](sketch_180209a/sketch_180209a.png) ![040](sketch_180209a/sketch_180209a_2.png) 040: [sketch_180209a](https://github.com/villares/sketch-a-day/tree/master/sketch_180209a) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] More recursion ---- ![039](sketch_180208e/sketch_180208e.png) 039: [sketch_180208e](https://github.com/villares/sketch-a-day/tree/master/sketch_180208e) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Manoloide inspired recursion ---- ![038](sketch_180208d/sketch_180208d.png) 038: [sketch_180208d](https://github.com/villares/sketch-a-day/tree/master/sketch_180208d) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Saskia Freeke inspired grid ---- ![037](sketch_180206a/sketch_180206a.gif) 037: [sketch_180206b](https://github.com/villares/sketch-a-day/tree/master/sketch_180206a) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] "Carnahacking is near!" ---- ![036](sketch_180205b/sketch_180205b.png) 036: [sketch_180205b](https://github.com/villares/sketch-a-day/tree/master/sketch_180205b) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Added some mouse disturbance ---- ![035](sketch_180204b/sketch_180204b.gif) 035: [sketch_180204b](https://github.com/villares/sketch-a-day/tree/master/sketch_180204b) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Preparing for "Carnahacking" ---- ![034](sketch_180203c/sketch_180203c.gif) 034: [sketch_180203c](https://github.com/villares/sketch-a-day/tree/master/sketch_180203c) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Like 33 but again with "w squared" circles ---- ![033](sketch_180202c/sketch_180202c.png) 033: [sketch_180202c](https://github.com/villares/sketch-a-day/tree/master/sketch_180202c) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Like 32 but again with lines ---- ![032](sketch_180201c/sketch_180201c.gif) 032: [sketch_180201c](https://github.com/villares/sketch-a-day/tree/master/sketch_180201c) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Like 29 but with moving points after the gesture is done ---- ![031](sketch_180131c/sketch_180131c.gif) 031: [sketch_180130c](https://github.com/villares/sketch-a-day/tree/master/sketch_180131c) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Like 29 but with moving points after the gesture is done ---- ![030](sketch_180130c/sketch_180130c.png) 030: [sketch_180130c](https://github.com/villares/sketch-a-day/tree/master/sketch_180130c) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Like 29 but with 3D and PeasyCam orbit... ---- ![29c](sketch_180129c/sketch_180129c.gif) 029: [sketch_180129c](https://github.com/villares/sketch-a-day/tree/master/sketch_180129c) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Like 27 but with circles ---- ![28c](sketch_180128c/sketch_180128c.png) 028: [sketch_180128c](https://github.com/villares/sketch-a-day/tree/master/sketch_180128c) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Like 27 but on grayscale ---- ![27c](sketch_180127c/sketch_180127c.png) 027: [sketch_180127c](https://github.com/villares/sketch-a-day/tree/master/sketch_180127c) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)][YouTube](https://www.youtube.com/watch?v=A-rqkru79Dw) Saving a list of points to animate colour... Mouse speed changes recorded colour & strokeWeight() ---- ![26](sketch_180126c/sketch_180126c.png) 026: [sketch_180126c](https://github.com/villares/sketch-a-day/tree/master/sketch_180126c) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Mouse speed changing colour & strokeWeight() ---- ![25](sketch_180125c/sketch_180125c.png) 025c: [sketch_180125b](https://github.com/villares/sketch-a-day/tree/master/sketch_180125c) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Mouse speed changing strokeWeight() ---- ![24](sketch_180124b/sketch_180124b.png) 024b: [sketch_180124b](https://github.com/villares/sketch-a-day/tree/master/sketch_180124b) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Maybe tomorrow I'll try adding some sliders & movement to this graph ? [nah...] ---- ![23](sketch_180123b/sketch_180123b.gif) 023b: [sketch_180123b](https://github.com/villares/sketch-a-day/tree/master/sketch_180123b) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Farrel's Sliders adding random displacement ---- 022: missed :( ---- ![21b](sketch_180121b/sketch_180121b.gif) 021b: [sketch_180121b](https://github.com/villares/sketch-a-day/tree/master/sketch_180121b) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Playing with Peter "[Hacking Math Class](http://twitter.com/hackingmath)" Farrel's Sliders! ---- ![20b](sketch_180120b/sketch_180120b.gif) 020b: [sketch_180120b](https://github.com/villares/sketch-a-day/tree/master/sketch_180120b) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] I was stuck on my DBN conversion sketch 20a, so this HSB shape play is 20b... ![20a](sketch_180120a/sketch_180120a.png) 020a: [sketch_180120a](https://github.com/villares/sketch-a-day/tree/master/sketch_180120a) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Refactored the code generation, removed most of the repeated vertices... C D E G O R not nice yet… ---- ![19a](sketch_180119a/sketch_180119a.png) 019: [sketch_180119a](https://github.com/villares/sketch-a-day/tree/master/sketch_180119a) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] DBN Letters: Now working on a new approach, generating vertex/Shape code, not there yet... ---- ![18a](sketch_180118a/sketch_180118a.png) 018: [sketch_180118a](https://github.com/villares/sketch-a-day/tree/master/sketch_180118a) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] DBN Color font? Nah… ---- ![17a](sketch_180117a/sketch_180117a.png) 017: [sketch_180117a](https://github.com/villares/sketch-a-day/tree/master/sketch_180117a) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] John Maeda's `dbnletters.dbn` code from Design by Numbers on Processing Python Mode ---- ![16a](sketch_180116a/sketch_180116a.png) 016: [16a](https://github.com/villares/sketch-a-day/tree/master/sketch_180116a) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Converting some Typography code from Design by Numbers, almost there! ---- ![15a](sketch_180115a/sketch_180115a.png) 015: [sketch_180115a](https://github.com/villares/sketch-a-day/tree/master/sketch_180115a) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Converting some Typography code from Design by Numbers, first trials ---- ![14a](sketch_180114a/sketch_180114a.png) 014: [sketch_180114a](https://github.com/villares/sketch-a-day/tree/master/sketch_180114a) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Another 3D Graph ---- ![13a](sketch_180113a/sketch_180113a.png) 013: [s180113](https://github.com/villares/sketch-a-day/tree/master/sketch_180113a) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] 3D Graph ---- ![s180112](s180112/s180112.png) 012: [s180112](https://github.com/villares/sketch-a-day/tree/master/s180112) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Another Graph Take ---- ![s180111](s180111/s180111.png) 011: [s180111](https://github.com/villares/sketch-a-day/tree/master/s180111) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] A Graph Take ---- ![s180110](s180110/s180110.png) 010: [s180110](https://github.com/villares/sketch-a-day/tree/master/s180110) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] More Manoloide inspired balls [PNG](s180110/s180110.png) (derived from a [sketch](https://gist.github.com/manoloide/16ea9e1d68c6ba1700fcb008fd38aab0) by [Manuel Gamboa Naon](http://manoloide.com)) ---- ![GIF](s180109/s180109.gif) 009: [s180109](https://github.com/villares/sketch-a-day/tree/master/s180109) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Balls for Manoloide [GIF](s180109/s180109.gif) (derived from a [sketch](https://gist.github.com/manoloide/16ea9e1d68c6ba1700fcb008fd38aab0) by [Manuel Gamboa Naon](http://manoloide.com)) ---- ![GIF](s180108/s180108.gif) 008: [s180108](https://github.com/villares/sketch-a-day/tree/master/s180108) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Grid of Platonic Solids in Python Mode [GIF](s180108/s180108.gif) ---- ![GIF](s180107/s180107.gif) 007: [s180107](https://github.com/villares/sketch-a-day/tree/master/s180107) [[Processing Java](https://www.processing.org)] Another grid of Platonic Solids in Java Mode [GIF](s180107/s180107.gif) ---- ![GIF](s180106/s180106.gif) 006: [s180106](https://github.com/villares/sketch-a-day/tree/master/s180106) [[Processing Java](https://www.processing.org)] Grid of Platonic Solids in Java Mode [GIF](s180106/s180106.gif) ---- 005: [s180105](https://github.com/villares/sketch-a-day/tree/master/s180105) [[p5js](https://www.p5js.org)] Line Tetrahedrons in p5*js - [interactive](https://villares.github.io/sketch-a-day/s180105/s180105) ---- ![GIF](s180104/s180104.gif) 004: [s180104](https://github.com/villares/sketch-a-day/tree/master/s180104) [[Processing Java](https://www.processing.org)] Tetrahedrons in Java Mode- [GIF](https://github.com/villares/sketch-a-day/tree/master/s180104/s180104.gif) ---- ![GIF](s180103/s180103.gif) 003: [s180103](https://github.com/villares/sketch-a-day/tree/master/s180103) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Tetrahedrons Python Mode- [GIF](https://github.com/villares/sketch-a-day/tree/master/s180103/s180103.gif) ---- 002: [s180102](https://github.com/villares/sketch-a-day/tree/master/s180102) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Many Stars 3D - [YouTube](https://www.youtube.com/watch?v=QmsthW60iBY) ---- 001: [s180101](https://github.com/villares/sketch-a-day/tree/master/s180101)[[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] Many Stars - [YouTube](https://www.youtube.com/watch?v=gKWBfghDV_w) (inspired by my own [p5js Xmas & New Year card code](https://github.com/villares/p5js-play/tree/master/newYearStars))