tag:blogger.com,1999:blog-71558954056620828472024-02-22T08:07:55.626-08:00Digital Artifactsby Maxime BeaucheminMaxime Beaucheminhttp://www.blogger.com/profile/03219404575093276787noreply@blogger.comBlogger22125tag:blogger.com,1999:blog-7155895405662082847.post-86958658736841376832015-09-06T22:58:00.002-07:002015-09-06T23:08:00.753-07:00Pointillism<br />
I wrote a tiny bit of processing.org (apparently it now supports Python!) to "pointify" images. The sketch allows for the user to define and limit the palette by picking individual colors off of the original image. You can also change the point sizes interactively. When in palette mode, the simple algorithm finds the closest 2 colors off of the palette and picks one randomly, this forces more diversity of colors in a section of the image.<br />
<br />
Here's without using a palette:<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjotdFn_66uzsft6dZVlpbURc8QhXU0uUnqowAvuTuaCE2JDBaedHTr3rqKPDcAfXtLxnl0dWtNW52KBWe4Bi5vtfkOrGSA16BihyphenhyphenNoWeFExZ0LfS8IWD0FVfB5B_X2aw8KGr_0rsFJIk99/s1600/Screen+Shot+2015-09-06+at+10.41.03+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjotdFn_66uzsft6dZVlpbURc8QhXU0uUnqowAvuTuaCE2JDBaedHTr3rqKPDcAfXtLxnl0dWtNW52KBWe4Bi5vtfkOrGSA16BihyphenhyphenNoWeFExZ0LfS8IWD0FVfB5B_X2aw8KGr_0rsFJIk99/s320/Screen+Shot+2015-09-06+at+10.41.03+PM.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
With a limiting palette:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY2Gwh6xa3Vy5kF23osHXa5Z_T4DduUytf-6kkOL9r_idWe6ZB39l5dBGljpq2QcHBF0HOFd8Qd04r8stoC1bgKN5FxZVnNJFGMyEulKmOet5E5MvNOlzgt5eyTzS9QLIp1hQzleercUuO/s1600/Screen+Shot+2015-09-06+at+10.45.12+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="249" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY2Gwh6xa3Vy5kF23osHXa5Z_T4DduUytf-6kkOL9r_idWe6ZB39l5dBGljpq2QcHBF0HOFd8Qd04r8stoC1bgKN5FxZVnNJFGMyEulKmOet5E5MvNOlzgt5eyTzS9QLIp1hQzleercUuO/s320/Screen+Shot+2015-09-06+at+10.45.12+PM.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjM61tGBgg4QUZu9-iIB9yBvv2SdTSZTcku_6CXKyz0XQTEBH8XSv1AhCyGqjQjg4k3IZfOBsemM2onjhEn_mM13jXdGZfeaPHzmmR90jFlQbvrzjYPQ-bfAq5lCJvB0PTuiUxklAD6efxN/s1600/Screen+Shot+2015-09-06+at+10.39.56+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="258" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjM61tGBgg4QUZu9-iIB9yBvv2SdTSZTcku_6CXKyz0XQTEBH8XSv1AhCyGqjQjg4k3IZfOBsemM2onjhEn_mM13jXdGZfeaPHzmmR90jFlQbvrzjYPQ-bfAq5lCJvB0PTuiUxklAD6efxN/s320/Screen+Shot+2015-09-06+at+10.39.56+PM.png" width="320" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaFbqcTTlQjSW4NTm21Q0wBt0WVoTiwuJMspmRyP81jCN1-EUK1PvQoQfYKNhmDQzcAsf-vIgsFzpzSMkarDlxCKaqx2dXxRM6Y1BLNDgp3xN0LNJ4GobGI1jgr4W4iwFuq4i921NAz1ec/s1600/Screen+Shot+2015-09-06+at+10.42.23+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="229" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaFbqcTTlQjSW4NTm21Q0wBt0WVoTiwuJMspmRyP81jCN1-EUK1PvQoQfYKNhmDQzcAsf-vIgsFzpzSMkarDlxCKaqx2dXxRM6Y1BLNDgp3xN0LNJ4GobGI1jgr4W4iwFuq4i921NAz1ec/s320/Screen+Shot+2015-09-06+at+10.42.23+PM.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdhbpPO922A8YMydSoxlqM5GkpMSYJ2SePijkx3bs1mMZMUDL0CuSu2dKGpRNZIr7BV3sHxcH72n4QI8gh2H8X1dndLtTZ48tpipKRNUTGc3NBYe94LydlFkUIZ04Xj9cHeG9_byjeWmYi/s1600/Screen+Shot+2015-09-06+at+10.47.11+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="229" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdhbpPO922A8YMydSoxlqM5GkpMSYJ2SePijkx3bs1mMZMUDL0CuSu2dKGpRNZIr7BV3sHxcH72n4QI8gh2H8X1dndLtTZ48tpipKRNUTGc3NBYe94LydlFkUIZ04Xj9cHeG9_byjeWmYi/s320/Screen+Shot+2015-09-06+at+10.47.11+PM.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<code></code><br />
<pre><code>from random import random, choice
WIDTH = 1000
HEIGHT = 800
POINT_SIZE = 7
PALLETTE_SIZE = 6
SPECTRUM_HEIGHT = 100
PAUSED = False
USE_PALLETTE = True
HIDE_CONTROLS = False
frames = 1000
img_uri = "/Users/maxime_beauchemin/Downloads/ripples.jpg"
img = None
spectrum = None
THUMB_SIZE = 200
thumb = None
def get_pallette(psize):
p = []
for i in range(psize):
x = random() * WIDTH
y = random() * HEIGHT
p.append(img.get(int(x), int(y)));
alternate_colors = []
return p + alternate_colors
pallette = [color(0), color(255)]
def draw_pallette():
square_size = 10
for i, c in enumerate(pallette):
fill(c)
rect(i * square_size, HEIGHT-square_size, square_size, square_size)
def draw_point():
x = random() * WIDTH
y = random() * HEIGHT
c = img.get(int(x), int(y));
if USE_PALLETTE:
pix = closest_color(c)
fill(pix);
else:
fill(c)
ellipse(x, y, POINT_SIZE, POINT_SIZE)
def color_dist(c1, c2):
r = red(c1) - red(c2)
g = green(c1) - green(c2)
b = blue(c1) - blue(c2)
return (b**2 + g**2 + r**2) ** 0.5
def closest_color(c):
l = sorted([(color_dist(c, p), p) for p in pallette], key=lambda x: x[0])
return choice(l[:2])[1]
def setup():
size(WIDTH, HEIGHT)
noStroke();
alternate_pallette = []
global pallette
global thumb
global img
global spectrum
frameRate(30);
thumb = loadImage(img_uri)
img = loadImage(img_uri)
img.resize(WIDTH, 0)
spectrum = loadImage("/Users/maxime_beauchemin/Downloads/spectrum.jpg")
thumb.resize(THUMB_SIZE, 0)
spectrum.resize(THUMB_SIZE, SPECTRUM_HEIGHT)
#pallette += get_pallette(PALLETTE_SIZE)
variance = 50
for p in pallette:
c = color(red(p) + variance, green(p)+variance, blue(p)+variance)
alternate_pallette.append(c)
#pallette += alternate_pallette
def draw():
if not PAUSED:
for i in range(500):
draw_point()
if not HIDE_CONTROLS:
draw_pallette()
#thumb
image(thumb, 0, SPECTRUM_HEIGHT)
image(spectrum, 0, 0)
def mouseClicked():
if mouseY > SPECTRUM_HEIGHT:
c = thumb.get(mouseX, mouseY-SPECTRUM_HEIGHT)
else:
c = spectrum.get(mouseX, mouseY)
pallette.append(c)
def keyPressed():
global POINT_SIZE
global PAUSED
global USE_PALLETTE
global HIDE_CONTROLS
if key == 'x' and len(pallette)>1:
pallette.pop()
elif key == '-':
POINT_SIZE -= 1
elif key == '+':
POINT_SIZE += 1
elif key == 'p':
PAUSED = not PAUSED
elif key == 'u':
USE_PALLETTE = not USE_PALLETTE
elif key == 'h':
HIDE_CONTROLS = not HIDE_CONTROLS
</code></pre>
Maxime Beaucheminhttp://www.blogger.com/profile/03219404575093276787noreply@blogger.com0tag:blogger.com,1999:blog-7155895405662082847.post-44718438602728005552014-10-24T21:38:00.001-07:002014-10-24T21:41:30.832-07:00Javascript Lamp ShadesA laser cutter and a few lines of Javascript turned flat plywood into these two lamp shades.<br />
<br />
I used Javascript to generate the vectors because I was already familiar with d3.js, and jsfiddle.net proved as a nice simple interactive IDE for the project. Before I knew it, I had vectors to "print".<br />
<br />
Check out the interactive source code here: <a href="http://jsfiddle.net/mistercrunch/9pHBW/20/">http://jsfiddle.net/mistercrunch/9pHBW/20/</a><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm50SQosE-2HGGEbI24uvb4On1x2iVlUMhJlcC7v8FHWcEJNhBDiGwDoFSnpaw_LpcGTIP1ymRtZo5HcUKpBjjzbZher5EssxdQ2tSBhR7DZJXVklefWaxL1a7uudCXQUJOHHu5LdyEcaN/s1600/two.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm50SQosE-2HGGEbI24uvb4On1x2iVlUMhJlcC7v8FHWcEJNhBDiGwDoFSnpaw_LpcGTIP1ymRtZo5HcUKpBjjzbZher5EssxdQ2tSBhR7DZJXVklefWaxL1a7uudCXQUJOHHu5LdyEcaN/s1600/two.jpg" height="360" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB3iUMv2f62oiwgvL0rnGNQJpYt07sfIOxHPNaeYVFmntozAc79SerHBRF93l7Ekq5nZry8222iE0WxZAOx9REsAdB4_GspjIFQpGOEYYWxLATzZ8AKXUWp7K3eTNRLl3X22jFlUlLtaoP/s1600/laser1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB3iUMv2f62oiwgvL0rnGNQJpYt07sfIOxHPNaeYVFmntozAc79SerHBRF93l7Ekq5nZry8222iE0WxZAOx9REsAdB4_GspjIFQpGOEYYWxLATzZ8AKXUWp7K3eTNRLl3X22jFlUlLtaoP/s1600/laser1.jpg" height="360" width="640" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMyArk33ngXgdi1qUvfwOUh_hji3eK48GVv-RfuoH1AIbD6zTOP3iIceTy1mvsOLdn-WK8F6kKc8OccWfVCU-P0mcD0UniK4t_A0AyYuF_0KetZzSOfn1AZDPS8phOtbim30iiXhLgtlMD/s1600/light.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMyArk33ngXgdi1qUvfwOUh_hji3eK48GVv-RfuoH1AIbD6zTOP3iIceTy1mvsOLdn-WK8F6kKc8OccWfVCU-P0mcD0UniK4t_A0AyYuF_0KetZzSOfn1AZDPS8phOtbim30iiXhLgtlMD/s1600/light.jpg" height="640" width="360" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ0TEvfpiaQxD_I61dEqiksX2I9aswWeJBE8eKopJE3O5qPnDQTLemTiBnp9cxyOKp5SD8Ev8Jo56ZDe8lEDU7dp6l-aaCghNUefMYBpIAArg7RqTikF-1lvqxrVCK1qnAII0rzdGogPU6/s1600/closeup.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ0TEvfpiaQxD_I61dEqiksX2I9aswWeJBE8eKopJE3O5qPnDQTLemTiBnp9cxyOKp5SD8Ev8Jo56ZDe8lEDU7dp6l-aaCghNUefMYBpIAArg7RqTikF-1lvqxrVCK1qnAII0rzdGogPU6/s1600/closeup.jpg" height="640" width="360" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiXyN_N3ph6E248VwJsbTjs-k88LYk4dzuOYXzoNSMbc0PbSq9OugbClEXmJNuMTiDYvBRc29tTqQUUi65Vohf4Ttx5ZmyD83yPIetuQXaMn__9hxNdzPrm9pUb5dVNHNLQZoKmg0hwHTg/s1600/top.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiXyN_N3ph6E248VwJsbTjs-k88LYk4dzuOYXzoNSMbc0PbSq9OugbClEXmJNuMTiDYvBRc29tTqQUUi65Vohf4Ttx5ZmyD83yPIetuQXaMn__9hxNdzPrm9pUb5dVNHNLQZoKmg0hwHTg/s1600/top.jpg" height="400" width="225" /></a></div>
<br />
<br />Maxime Beaucheminhttp://www.blogger.com/profile/03219404575093276787noreply@blogger.com1tag:blogger.com,1999:blog-7155895405662082847.post-62056798544050037602014-09-18T10:48:00.002-07:002014-09-18T10:48:35.780-07:00Laser print designOver my time working at the Facebook campus I was able to access the laser cutter from the wood shop and came up with a few designs. You can download the files from my <a href="http://www.thingiverse.com/mistercrunch/designs">Thingiverse</a> page.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisVRjMH6IVuUmb7a-ciY0hPmxvKmiqV-bGZ2AcJdJaFYdlYCShYDw1H_ldmLOCPKQfyDTl-2uBuy_6WnF-xsAYXlzOR16gTRvNr8bxpyjraUV3skhLt1CaeFMj5s2qbTglZCQAnluJTvsJ/s1600/fish_wall.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisVRjMH6IVuUmb7a-ciY0hPmxvKmiqV-bGZ2AcJdJaFYdlYCShYDw1H_ldmLOCPKQfyDTl-2uBuy_6WnF-xsAYXlzOR16gTRvNr8bxpyjraUV3skhLt1CaeFMj5s2qbTglZCQAnluJTvsJ/s1600/fish_wall.jpg" height="180" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR3Qe3ILxGC8Wcfm7oTGDs-_su84xT0ulOkD7dF975iGjf1FvjwtVC2Gi07Wgl5Hw7OIXGHuhPdy_tX5lmO5Y12zzLMuUBOGpXHSkFHooGSDjIgJYA4iK8Vp1Q38fFNln4qXienc2ijKMO/s1600/leaf_preview_featured.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR3Qe3ILxGC8Wcfm7oTGDs-_su84xT0ulOkD7dF975iGjf1FvjwtVC2Gi07Wgl5Hw7OIXGHuhPdy_tX5lmO5Y12zzLMuUBOGpXHSkFHooGSDjIgJYA4iK8Vp1Q38fFNln4qXienc2ijKMO/s1600/leaf_preview_featured.jpg" height="240" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjODnXpQMheBaX-1rimwIJiA4a_qMn9f0yZroIqvexs_qat7auAZh4XMKEY9RtytJUhp5KurD0ISmdhMpZl2d352woOya2kZYmmA1m8YbupeRoVHeahW8W8aJ7xf3EfEjxCFOhjkkUwKoxN/s1600/twirl_wall_preview_featured.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjODnXpQMheBaX-1rimwIJiA4a_qMn9f0yZroIqvexs_qat7auAZh4XMKEY9RtytJUhp5KurD0ISmdhMpZl2d352woOya2kZYmmA1m8YbupeRoVHeahW8W8aJ7xf3EfEjxCFOhjkkUwKoxN/s1600/twirl_wall_preview_featured.jpg" height="240" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9tCn73_pJ6-mZCdtFbEmhvafn-Y482pyCqyEL7N_DFacp2CWtF-HO3lYiOcQzNBzO_ROTSVrL-t3iiz-sEy3cVsi6F8sxU5u4dJArcu8Op29vcp_ZEcdqfLUK0SMdmqqIe7PoTUpYClN5/s1600/atat_preview_featured.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9tCn73_pJ6-mZCdtFbEmhvafn-Y482pyCqyEL7N_DFacp2CWtF-HO3lYiOcQzNBzO_ROTSVrL-t3iiz-sEy3cVsi6F8sxU5u4dJArcu8Op29vcp_ZEcdqfLUK0SMdmqqIe7PoTUpYClN5/s1600/atat_preview_featured.jpg" height="240" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-n7Psay_e48VBclTWCyrBsmVyIy2H05QRn53YXfW24z4fw8OjtSihkTy3PBfMCMRWduTFRwAS9rHhY8lcV4snM-SmgtBHks_AYsjgmf3Dvq5bjegxNaSVqf8I0n4SsAecBPVwtlDv416N/s1600/escher_preview_featured.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-n7Psay_e48VBclTWCyrBsmVyIy2H05QRn53YXfW24z4fw8OjtSihkTy3PBfMCMRWduTFRwAS9rHhY8lcV4snM-SmgtBHks_AYsjgmf3Dvq5bjegxNaSVqf8I0n4SsAecBPVwtlDv416N/s1600/escher_preview_featured.jpg" height="240" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />Maxime Beaucheminhttp://www.blogger.com/profile/03219404575093276787noreply@blogger.com0tag:blogger.com,1999:blog-7155895405662082847.post-34849259269430287552014-06-05T10:56:00.001-07:002014-06-05T10:56:20.250-07:00Using lasers to cut a treeI've been playing with this laser cutter at work and as I'm only etching the surface of what this tool can do, I'm getting really happy with some of the results I get.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOEDnOPN0vMWv-Y1iLKs-74a3lgXto1jfDDbygXvcIntAJgH5wgNPmgQGcsWYSIREysdlguIyy2WNhNs5iWscxWsOvR4U_BXk35DqrFdYLf-Axh3gfDzLU4NpeqVYXbTA7KJYZEYzkjKa5/s1600/tree.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOEDnOPN0vMWv-Y1iLKs-74a3lgXto1jfDDbygXvcIntAJgH5wgNPmgQGcsWYSIREysdlguIyy2WNhNs5iWscxWsOvR4U_BXk35DqrFdYLf-Axh3gfDzLU4NpeqVYXbTA7KJYZEYzkjKa5/s1600/tree.jpg" height="360" width="640" /></a></div>
<br />
I've found a workflow that works pretty nitely while working on this project.<br />
<br />
<br />
<ul>
<li> Google image search for an image of interest (tree), activate "Search Tools" and filter on size:large and color:black&white.</li>
<li>Import the image on in Pixlr (Photosh or any other image editing tool will do just as good)</li>
<li>Crank up the contrast until you have only pure blacks and whites</li>
<li>Bring into Illustrator</li>
<li>Trace image (vectorize)</li>
<li>Make correction</li>
<li>Check for path duplicates (somehow Illustrator seems to generates dups when image tracing), delete dups manually, or use the layer pane to identify and bulk delete</li>
<li>Load up your laser cutting machine, make it do what it does</li>
<li>Sand, varnish, hang.</li>
</ul>
Maxime Beaucheminhttp://www.blogger.com/profile/03219404575093276787noreply@blogger.com0tag:blogger.com,1999:blog-7155895405662082847.post-67499030007538785242011-11-14T08:46:00.001-08:002012-04-18T10:29:07.578-07:00LED Suit<iframe src="http://player.vimeo.com/video/31881947?title=0&byline=0&portrait=0" width="600" height="400" frameborder="0" webkitAllowFullScreen allowFullScreen></iframe><br />
<br />
I made this LED suit. It's made out of about a hundred button pins I designed that each have 6 RGB LEDs. <a href="mistercrunch.blogspot.com/2010/11/led-button-pins.html"> You can find more information about the button pins here</a>. They are all networked to share power and each button pin can send messages to their neighbors.<br />
<br />
Each pin has a button, and pushing this button will generate a new pattern randomly (flash type, flashing speed, base colors, color ranges, ...). The pattern also has a propagation speed at which it sends the pattern information to its neighbors, who will then pass it to theirs. The pattern spreads on the suit organically. There is no central brain on the suit. Any single button pin can fail, or connections can break and the rest of the suit will keep working. It is a distributed system.<br />
<br />
The pins are velcroed on the suit so it can be washed.<br />
<br />
The PWM and UART are both software.<br />
<br />
The suite was for Burning Man and present at BM2011.Maxime Beaucheminhttp://www.blogger.com/profile/03219404575093276787noreply@blogger.com1tag:blogger.com,1999:blog-7155895405662082847.post-41386323614142109992011-01-10T07:38:00.000-08:002011-01-10T10:02:00.102-08:00Extended exposure photographs of the LED button pin<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFfBxHvWrJPBfMvzwQzwvBB1m01cDpLlYQIUixnXPyFwNQ2VWWJvMWX1CiQjx8aioErv6cQIKHlLexfVah5sc4FfOX1CXbjgki1C3YLlDsMWtAzqgWV87uo2dSCxU0SRi73asjLY7KJSFi/s1600/8.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFfBxHvWrJPBfMvzwQzwvBB1m01cDpLlYQIUixnXPyFwNQ2VWWJvMWX1CiQjx8aioErv6cQIKHlLexfVah5sc4FfOX1CXbjgki1C3YLlDsMWtAzqgWV87uo2dSCxU0SRi73asjLY7KJSFi/s400/8.jpg" width="400" /></a></div><br />
<br />
My friend <a href="http://celerielectrique.wordpress.com/">Matthieu Godbout</a>, accomplished photograph/hacker/artist, has been taking some awesome pictures of my <a href="http://mistercrunch.blogspot.com/2010/11/led-button-pins.html">LED button pin</a> in action. The extended exposure and the use of reflective surfaces make for some very intersting pictures.<br />
<br />
You can actually see how the <a href="http://en.wikipedia.org/wiki/Pulse-width_modulation">PWM </a>behaves very clearly. Looking at the pictures reminded me that all patterns are under 50% brightness or so, which I limited to save battery. This explains why there aren't any continuous beams of light. The decomposition of individual pulses shows the 7 possible colors combinations (R-G-B-RG-RB-GB-RGB).<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtfL7Rh39CfB1XaYbm44I0-Gm6OTWgUe0TB4X-Pzep0KMxB6mJZ5lCT6e28U9aZcGk48XB5MrMcjyjRpSYRQoFvigUNEVAAY7878w1P4xmz5fifkAc3s-4k_RJcVxbUH_XCO6LThoi2mT6/s1600/1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtfL7Rh39CfB1XaYbm44I0-Gm6OTWgUe0TB4X-Pzep0KMxB6mJZ5lCT6e28U9aZcGk48XB5MrMcjyjRpSYRQoFvigUNEVAAY7878w1P4xmz5fifkAc3s-4k_RJcVxbUH_XCO6LThoi2mT6/s400/1.jpg" width="400" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvvSQyfdrRt-xmOnVPRlCipjuelqLaneXltiaDgHCX4GJ8ds94BF17QxrrWE9XTbohFAIJolryjOgmvNro1hJE1JlPTL6fc3xHULvcaODhVOlYthftD_T-JPvAngee_vX2p9EZitQl4ge9/s1600/2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="343" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvvSQyfdrRt-xmOnVPRlCipjuelqLaneXltiaDgHCX4GJ8ds94BF17QxrrWE9XTbohFAIJolryjOgmvNro1hJE1JlPTL6fc3xHULvcaODhVOlYthftD_T-JPvAngee_vX2p9EZitQl4ge9/s400/2.jpg" width="400" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixoPEuN-3q-CgVSyVPxCOt4ZlXEF6OqMadBowAt42Kji4dYLaibzyLtNYrtJzpUE9JF-3UOZHiNJE35ZCZ9uCZNJjbMwfZjrhT6BN5ybnEtyjAG1vy3BhyJFPvirlzL_uoPPTyXAQQCbHS/s1600/3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="396" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixoPEuN-3q-CgVSyVPxCOt4ZlXEF6OqMadBowAt42Kji4dYLaibzyLtNYrtJzpUE9JF-3UOZHiNJE35ZCZ9uCZNJjbMwfZjrhT6BN5ybnEtyjAG1vy3BhyJFPvirlzL_uoPPTyXAQQCbHS/s400/3.jpg" width="400" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTGS7VpMm3dLrINFykVa3jpcBNTK-XVhz0Gc_GlpZjpBql4ewGHe9yb7FiOr8VSDbA7Ww0uUnExjs6Q01Lm99BW8WtlDnr0VwV2gymoqfP9dpPRLAgnxlviao1qaG5m_8aCWhT5lNm3f6A/s1600/4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="383" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTGS7VpMm3dLrINFykVa3jpcBNTK-XVhz0Gc_GlpZjpBql4ewGHe9yb7FiOr8VSDbA7Ww0uUnExjs6Q01Lm99BW8WtlDnr0VwV2gymoqfP9dpPRLAgnxlviao1qaG5m_8aCWhT5lNm3f6A/s400/4.jpg" width="400" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_9PWjKQipKYH1HpCXPAPEOHyA0rbS4JXO9h2ZO1A3s5KrweR8-lq8Vkk35xgjT81yrincWwTa3b_ftzOLMrHP0GtN4rEhMjWqokwinLG7F5br4yoi_ooB1PstisMYJZvjWZtZPnNUYGIK/s1600/5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_9PWjKQipKYH1HpCXPAPEOHyA0rbS4JXO9h2ZO1A3s5KrweR8-lq8Vkk35xgjT81yrincWwTa3b_ftzOLMrHP0GtN4rEhMjWqokwinLG7F5br4yoi_ooB1PstisMYJZvjWZtZPnNUYGIK/s400/5.jpg" width="400" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFfBxHvWrJPBfMvzwQzwvBB1m01cDpLlYQIUixnXPyFwNQ2VWWJvMWX1CiQjx8aioErv6cQIKHlLexfVah5sc4FfOX1CXbjgki1C3YLlDsMWtAzqgWV87uo2dSCxU0SRi73asjLY7KJSFi/s1600/8.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFfBxHvWrJPBfMvzwQzwvBB1m01cDpLlYQIUixnXPyFwNQ2VWWJvMWX1CiQjx8aioErv6cQIKHlLexfVah5sc4FfOX1CXbjgki1C3YLlDsMWtAzqgWV87uo2dSCxU0SRi73asjLY7KJSFi/s400/8.jpg" width="400" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8sX1Zw9x5ukIQYqRT8-S7zE37ep5Vik2H9XxnqOKP974lPYg-YeaGfadkRo-eaA-omz2Iddq1QXXiQpDiVoLAso6s3Np_9cEvr4N2RSx4jMm9hPBJCYTXxCGK_WfYdW66PpuuOJjH-qzk/s1600/6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8sX1Zw9x5ukIQYqRT8-S7zE37ep5Vik2H9XxnqOKP974lPYg-YeaGfadkRo-eaA-omz2Iddq1QXXiQpDiVoLAso6s3Np_9cEvr4N2RSx4jMm9hPBJCYTXxCGK_WfYdW66PpuuOJjH-qzk/s400/6.jpg" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1GXBEKXSRmIt_0-Ez9aSKksu19bWh86-6WjdVsjtC6egW13pNzHtBlcFyXYiU6gMy-LXs7En7-c2mJePFQl-7uiDwxj_WNPiLUugKVz9k6XIrwnAs8FAtlEWMooWfgAsVWxdHjV-DlIs2/s1600/7.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1GXBEKXSRmIt_0-Ez9aSKksu19bWh86-6WjdVsjtC6egW13pNzHtBlcFyXYiU6gMy-LXs7En7-c2mJePFQl-7uiDwxj_WNPiLUugKVz9k6XIrwnAs8FAtlEWMooWfgAsVWxdHjV-DlIs2/s400/7.jpg" width="400" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPeWOwOwW8-CMTFvLx7KS0Q-uHGwofemt-J1I_c-ZtSI768_C4K1cItZffreNldkUmVBQsSKHC-F5m-jt4nb6GUyZbPz1GXIZgnwqVzqYE0FkngUAqd22D2Ue9IA4mRcbPo4x0v0YLnH_S/s1600/9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPeWOwOwW8-CMTFvLx7KS0Q-uHGwofemt-J1I_c-ZtSI768_C4K1cItZffreNldkUmVBQsSKHC-F5m-jt4nb6GUyZbPz1GXIZgnwqVzqYE0FkngUAqd22D2Ue9IA4mRcbPo4x0v0YLnH_S/s400/9.jpg" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><br />
<div><br />
</div>Maxime Beaucheminhttp://www.blogger.com/profile/03219404575093276787noreply@blogger.com1tag:blogger.com,1999:blog-7155895405662082847.post-60625131487500935172010-12-02T12:40:00.001-08:002010-12-02T12:40:12.005-08:00Atomic Test<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLdi5Ov9cEOZhEzLun8_pkI7cfqs9FgNCMF-Xw4piaHv6kpDf-2RU8jNtzPgmRyFYUkYXJrKEC-J55nLnF7XURpsGPhSocVNg38MGXos8TGFCG3nyvWVPeSovjRW3Fik8mr0E0dLXnYeSg/s1600/atomictest.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="305" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLdi5Ov9cEOZhEzLun8_pkI7cfqs9FgNCMF-Xw4piaHv6kpDf-2RU8jNtzPgmRyFYUkYXJrKEC-J55nLnF7XURpsGPhSocVNg38MGXos8TGFCG3nyvWVPeSovjRW3Fik8mr0E0dLXnYeSg/s400/atomictest.jpg" width="400" /></a></div><br />
<br />
Here's an unfinished track I worked on back in March 2010. I was exploring wobbling bass sounds.<br />
<br />
The sound sample is from some guy back in the 50's who recorded his impressions while assisting to an atomic test somewhere in the Nevada desert.<br />
<br />
<a href="https://docs.google.com/leaf?id=0B5PVE0gzO81oY2M2OTA5ZDItYzU0Ni00ZDcyLTk3ZmYtMzk2MGY2NDAwMTVj&hl=en"><b>AtomicTest.mp3</b></a>Maxime Beaucheminhttp://www.blogger.com/profile/03219404575093276787noreply@blogger.com0tag:blogger.com,1999:blog-7155895405662082847.post-55708863056304455872010-11-18T20:01:00.000-08:002010-11-19T07:02:42.203-08:00LED button pins<iframe frameborder="0" height="338" src="http://player.vimeo.com/video/16984593" width="601"></iframe><br />
<a href="http://vimeo.com/16984593">LED Button Pin</a> from <a href="http://vimeo.com/user1518426">mistercrunch</a> on <a href="http://vimeo.com/">Vimeo</a>.<br />
<br />
I designed and built these button pins as an art contribution to the BaconWood festival. BaconWood is a bacon and music festival that takes place in the Mendecino woodlands. 100 of these were distributed to the crowd, making this giant bacon party more colorful and blinky.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8CdFfvXMhFevzY2I1ZbirqsC2HP1y_UUZQ26rlW2idTqtK6JtZKOmrpr5eLHOLlk9GtjsOmHdtTSJJzzChovtCnzLgRcDXs4qSdx3fc1ZR-upSL-rFhV3qunLuB-6_hyphenhyphenEEPiFJSI7xLwj/s1600/IMG_0228+%2528Modified+in+GIMP+Image+Editor%2529.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="199" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8CdFfvXMhFevzY2I1ZbirqsC2HP1y_UUZQ26rlW2idTqtK6JtZKOmrpr5eLHOLlk9GtjsOmHdtTSJJzzChovtCnzLgRcDXs4qSdx3fc1ZR-upSL-rFhV3qunLuB-6_hyphenhyphenEEPiFJSI7xLwj/s200/IMG_0228+%2528Modified+in+GIMP+Image+Editor%2529.JPG" width="200" /></a></div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtuHcPsqqlkh8859-buwLJ4ejcHwD2owpWRfxveDLXLbUgpCX-OZ-SLXCgh9hj7ogM6Qw4C02UZcDNO4O4nj41AWSGPy__bMyewC-Bpsskst9wtlFmy57yUWgKuLRYq4eUvUAEE524O4lW/s1600/IMG_0229.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtuHcPsqqlkh8859-buwLJ4ejcHwD2owpWRfxveDLXLbUgpCX-OZ-SLXCgh9hj7ogM6Qw4C02UZcDNO4O4nj41AWSGPy__bMyewC-Bpsskst9wtlFmy57yUWgKuLRYq4eUvUAEE524O4lW/s200/IMG_0229.JPG" width="200" /></a>Specs:<br />
* 6 SMD RGB LEDs<br />
* 1 button (cycles through different patterns)<br />
* 1 microcontroller (ATTiny48) (32 IO pins!)<br />
* 1 coin cell battery holder and battery<br />
* 1 6 pin flatflex connector for programming <br />
* 1 pin<br />
<br />
<ul></ul><div>The MCU controls each LED individually with 4bit PWM. I built a pattern framework which allows for different types of patterns (blinking, twirling, random, ...). The framework can do various thing like palette animation, color ranges, operate at different speeds and so on.</div><div><br />
</div><div>The idea was to make a cool little pin in itself, but also to design a cheap modular node that can be network to one another to use for other projects. In other words, these pins can be meshed into a network. Each one can receive, emit or retransmit patterns.</div><div><br />
</div><div>The board is made so that there's a 4 pins connector on either side. The 4 pin connector is (VCC, GND, IO, IO), where IO is a bidirectional UART. I wrote a software UART using a simple protocol and interuptions on these IO pins. The message is typically a lighting pattern, validation and timing as to when to pass the pattern to the next neighbor.</div><div><br />
</div><div>I designed the PCB using Eagle, the PCB were printed by AP Circuits, the parts ordered from DigiKey, the LEDs from somewhere in China, and the whole was hand soldered by yours truly (yes, it did take a million hours). </div><div><br />
</div><div>These pin can be assembled in strings or meshes. I have 100 left. Stay tuned to see what I'm going to do with them.</div>Maxime Beaucheminhttp://www.blogger.com/profile/03219404575093276787noreply@blogger.com0tag:blogger.com,1999:blog-7155895405662082847.post-77846801468929971912010-11-18T19:48:00.000-08:002010-11-19T07:03:19.157-08:00PongCyl3D: A 3D Pong game in a cylinder<iframe frameborder="0" height="616" src="http://player.vimeo.com/video/16987805" width="601"></iframe><br />
<a href="http://vimeo.com/16987805">PongCyl3D: A 3D Pong game in a cylinder</a> from <a href="http://vimeo.com/user1518426">mistercrunch</a> on <a href="http://vimeo.com/">Vimeo</a>.<br />
<br />
I programmed this 3D version of the classic Pong game that plays in a cylinder and wanted to open the source code for it under the GPL license. It is written in Java using the Processing.org framework/IDE.<br />
<br />
Note that:<br />
* it is possible to put effect on the ball based on the movement of the paddle while hitting the ball<br />
* a circle moves along the Z axis to help with depth perception<br />
* a menu is accessible to tune some parameters <space bar=""> </space><br />
<ul></ul>It was made as an experiment, and purely for fun. The gameplay is currently limited since your NPC opponent will never miss the ball (his paddle XY coordinates are tied to the ball's). I shelved the project, but wanted to have the paddle controlled using hand gestures while using simple computer vision.<br />
<br />
I was envisioning a projection screen in the middle of a room with a player on either side. Each side has a projector, a webcam that reads player motion and, you guessed it: a player. The ball accelerates and the amount of effect on it increases as the exchange lasts, until someone misses. First to get 11 points win.<br />
<br />
This was meant to be a prototype so the code might not be perfect and commented.<br />
<br />
Code on github:<br />
<a href="https://github.com/mistercrunch/PongCyl-3D">https://github.com/mistercrunch/PongCyl-3D</a>Maxime Beaucheminhttp://www.blogger.com/profile/03219404575093276787noreply@blogger.com0tag:blogger.com,1999:blog-7155895405662082847.post-18752651314312110972010-11-18T12:17:00.000-08:002010-11-19T07:06:54.747-08:00Open Sourcing my projectsYes. I'm taking the leap: I'm open sourcing most of my projects.<br />
<br />
Most of what I inspire myself from, learn from and run on a daily basis is actually Open. So time to give back. Plus the fact that you get awesome free hosting for your open source projects.<br />
<br />
I will go back into my older posts and add the links to github, which is the social coding site where I will host my projects.<br />
<br />
Send me a request through email if there's a specific project you want me to share the code for, I'll take the time to create the github page and update the blog post with the link.<br />
<br />
Now open:<br />
<a href="http://mistercrunch.blogspot.com/2010/11/pongcyl3d-3d-pong-game-in-cylinder.html">PongCyl3D: A 3D Pong game in a cylinder</a><br />
<a href="http://mistercrunch.blogspot.com/2010/07/harmonograph-3d.html">Open Source Interactive 3D Harmonograph</a><br />
More to come!Maxime Beaucheminhttp://www.blogger.com/profile/03219404575093276787noreply@blogger.com0tag:blogger.com,1999:blog-7155895405662082847.post-35856783493680609102010-11-18T12:11:00.000-08:002010-11-18T12:18:40.866-08:00Pixmob - A wearable crowd display<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcEd-9FkLeMgavY4ytER7fdjX9gTGWP_llrmZiy-8zPrUl0vP7JTObSJnZKd1snQUY4i6uRumGl4uRcI6C-gZ0JXbeyUagIW43ZpoiIKhUlnaIi1UKi2t5Sikps_ZiYDc0XCRy1wAjsnYf/s1600/SS-2010-11-18_15.04.05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="386" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcEd-9FkLeMgavY4ytER7fdjX9gTGWP_llrmZiy-8zPrUl0vP7JTObSJnZKd1snQUY4i6uRumGl4uRcI6C-gZ0JXbeyUagIW43ZpoiIKhUlnaIi1UKi2t5Sikps_ZiYDc0XCRy1wAjsnYf/s400/SS-2010-11-18_15.04.05.png" width="400" /></a></div><br />
<br />
If someone was to tell me "I know what you did last summer", that would mean that they know about my involvement in project Pixmob, a crowd display technology developed by Eski and used by the Cirque du Soleil in a show they put together for Microsoft Kinect's launch.<br />
<br />
I played an important creative and executive role on the project: from prototyping, to design, to soldering, to hiring and managing troops. Basically just doing whatever it took to making it happen.<br />
<br />
From Eski's site:<br />
<br />
<div style="font-family: arial, helvetica, sans-serif; font-size: 12px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 3px;"><i>In Los Angeles, on June 13 2010, with a mise-en-scène by Cirque du Soleil, Microsoft launched Kinect, a revolutionary system for the Xbox 360 console where the human body is the controller. In order to find new ways to make the crowd participate in the event, Cirque du Soleil called upon ESKI’s PixMob technology.</i></div><div style="font-family: arial, helvetica, sans-serif; font-size: 12px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 3px;"><i>With barely three month ahead of them, ESKI’s designers and engineers produced several thousands of PixMob LED pixels as well as the infrared spotlights to communicate with them. They also designed the visual effects, created the ‘ponchos’ that the Cirque du Soleil had imagined and embedded the pixels in more than 3000 ponchos.</i></div><div style="font-family: arial, helvetica, sans-serif; font-size: 12px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 3px;"><i>PixMob’s technology stunned the members of the crowd as they each turned into a pixel of a giant screen glowing in a myriad of colors. Along with Cirque du Soleil’s dazzling performances, lots of ink has been spilled over the ‘magic ponchos’ born and raised in our studios!</i></div><br />
<a href="http://eskistudio.com/en/projects/microsoft_kinect/">http://eskistudio.com/en/projects/microsoft_kinect/</a><br />
<br />
I can't wait to see more of those Pixmobs!Maxime Beaucheminhttp://www.blogger.com/profile/03219404575093276787noreply@blogger.com0tag:blogger.com,1999:blog-7155895405662082847.post-36807269456429597322010-07-05T08:46:00.000-07:002010-11-18T21:05:22.222-08:00Open Source Interactive 3D Harmonograph<div style="margin: 0px;"><br />
</div><div style="margin: 0px;">Inspired by a book titled <a href="http://www.amazon.com/Harmonograph-Visual-Guide-Mathematics-Wooden/dp/0802714099/ref=sr_1_1?ie=UTF8&s=books&qid=1278344037&sr=8-1"> Harmonograph: A Visual Guide to the Mathematics of Music </a>, I decided to program an interactive 3d harmonograph using <a href="http://www.processing.org/">Processing.org</a>.</div><div style="margin: 0px;"><br />
</div><div style="margin: 0px;">Here's what it looks like:</div><div style="margin: 0px;"><br />
</div><div style="margin: 0px;"><object height="450" width="600"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=13104615&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=13104615&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="600" height="450"></embed></object></div><div style="margin: 0px;"><a href="http://vimeo.com/13104615">Interactive 3D Harmonograph</a> from <a href="http://vimeo.com/user1518426">mistercrunch</a> on <a href="http://vimeo.com/">Vimeo</a>.</div><div style="margin: 0px;"><br />
</div><br />
<br />
But just what is a Harmonograph? (from Wikipedia): <br />
<div style="color: #666666;"><br />
<span style="color: #aaaaaa;">"A <a href="http://en.wikipedia.org/wiki/Harmonograph">harmonograph</a> is a mechanical apparatus that employs pendulums to create a geometric image. The drawings created typically are Lissajous curves, or related drawings of greater complexity.(...) A simple, so-called 'lateral' harmonograph uses two pendulums to control the movement of a pen relative to a drawing surface. One pendulum moves the pen back and forth along one axis and the other pendulum moves the drawing surface back and forth along a perpendicular axis. By varying the frequency of the pendulums relative to one another (and phase) different patterns are created. Even a simple harmonograph as described can create ellipses, spirals, figure eights and other Lissajous figures."</span><br />
<span style="color: #aaaaaa;"><br />
</span><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://www.sciencemuseum.org.uk/images/object_images/535x535/10302608.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://www.sciencemuseum.org.uk/images/object_images/535x535/10302608.jpg" width="225" /></a><a href="http://www.aniwilliams.com/images/Harmonograph-Musical-Fifth.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.aniwilliams.com/images/Harmonograph-Musical-Fifth.gif" /></a></div><span style="color: #aaaaaa;"><br />
</span></div><br />
I decided to share the source code under the GPL license. The project is still work in progress, so the code is shared as is. It should be easy enough for anyone interested in interacting with this software to download the source code and run it in the Processing IDE on any platform.<br />
<br />
Using this software, many variables can be interacted with to change the harmony of the graph. The interface is simple and very straight forward. The menu and variable names should be self explanatory. <b>Here's the basics on how to interact with this program:</b><br />
<br />
<b>Mouse</b>: Changes the point of view around the drawing<br />
<b>Numbers(1to9) quick</b>: Recalls a pattern (variable values set)<br />
<b>Numbers(1to9) held</b>: Saves/overwrite a variable preset for that number<br />
<b>Space bar</b>: Shows/hide the 3d menu, menu is best viewed when the camera is centered, bring the mouse to the middle of the screen<br />
<b>Up/Down</b>: Change from a variable to the next/previous<br />
<b>Left/Right</b>: Increment/Decrement the variable<br />
<br />
Source on GitHub:<br />
<a href="https://github.com/mistercrunch/Harmonograph-3D">https://github.com/mistercrunch/Harmonograph-3D</a>Maxime Beaucheminhttp://www.blogger.com/profile/03219404575093276787noreply@blogger.com0tag:blogger.com,1999:blog-7155895405662082847.post-13208534771736853692010-02-05T14:47:00.000-08:002011-07-27T11:14:20.676-07:00Psychedelic Mirror at BaconwoodThanks to Reid Spice, the second edition of the <a href="http://www.blogger.com/www.baconwoodfestival.org"> BaconWood Festival</a> is coming soon, and I started wondering about what I'm going to showcase this year.<br />
<br />
Thinking of that reminded me of what I did last year. I set up this video installation I now refer to as "the psychedelic mirror" which was basically a camera / projector setup while <a href="http://www.blogger.com/www.processing.org">Processing</a> the image in real time through trippy algorythmetic filters I wrote. I set it up on the dance floor and people were basically dancing with an ever changing psychedlic image of themselves.<br />
<br />
Luckily, my friend Jim Wiggins had taken a couple of short videos that I dug up and put together recently. See what it looked like here:<br />
<br />
<object height="390" width="520"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=9115784&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=9115784&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="520" height="390"></embed></object><br />
<a href="http://vimeo.com/9115784">Psychedelic Mirror - Real time video processing.org</a> from <a href="http://vimeo.com/user1518426">mistercrunch</a> on <a href="http://vimeo.com/">Vimeo</a>.<br />
<br />
The webcam was slightly modified to work on the close to infra-red spectrum and I had a infra-red spotlight. A sheet was used in front of a window as a projector screen. I had nothing to hold the projector in a safe place so I had to strap it on garbage can sitting on top of a table on top of two other tables (so it would clear the heads of the dancers). Kinda ghetto, but it turned out pretty good!<br />
<br />
The software was designed to have two modes, one that would cycle automatically through the different patterns and another where the events and patterns were triggered by a wireless keyboard. <br />
<br />
I'm thinking about using this idea as a prototype to something much better. Stay put!Maxime Beaucheminhttp://www.blogger.com/profile/03219404575093276787noreply@blogger.com1tag:blogger.com,1999:blog-7155895405662082847.post-69489897518101074252010-01-30T11:56:00.000-08:002011-07-27T11:12:59.712-07:00Midi Visualization using processing.orgSo first thing first: excuse me for the poor video quality, I couldn't use a screen capture software since my core2duo was too busy rendering balls and piano sounds. I had to film my computer screen using my cheap Canon camera. I'll post a better video as soon as I find a way.<br />
<br />
<object height="390" width="520"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=9093095&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=9093095&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="520" height="390"></embed></object><br />
<br />
I've always had mixed feelings regarding sound visualization on computers. While results usually look extremely cool, effective spectrum analysis and beat detection are hard to program, and the results never fully convey the feeling of looking at music. <br />
<br />
<br />
So I decided to try a totally different approach and work with <a href="http://en.wikipedia.org/wiki/General_MIDI">General Midi</a> instead. While the public perception might be that midi sounds terrible (legacy of the AdLib & Sound Blaster sound cards days), sound synthesis has come a long way and midi, on top of being extremely practical, now can sound amazing. Coding sound visualization using midi as the input allows me to get the full information about which note is played, at which velocity, when, and how long it is held. Of course the downside is that it works only with midi instruments (keyboards and electronic drums and this is typically it...).<br />
<br />
<br />
So here's how I approached the design, and how I represented the different dimensions:<br />
<ul><li>Pitch: Notes are displayed left to right, as on the piano. Black notes appear slightly higher.</li>
<li>Velocity: Size, harder strokes are shown bigger than lighter strokes</li>
<li>Time: Basically using the Y axis to represent time. When a note is hit, a ball appears at the top of the screen and stays there until the key is released, then the ball drops following a gravity like force. The note will then start shrinking until is disappears. For trippyness purposes the balls split into 3 when they hit the floor and bounce around.</li>
<li>Harmony: Colors are used to display the note on the scale. Consonant interval is illustrated by using similar colors, while dissonant intervals are shown as opposed colors. Basically using the circle of fifths and the hue of the HSB color.<br />
<br />
<img alt="" border="0" id="BLOGGER_PHOTO_ID_5432632875774183250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivmBqmAgNLBShk8jJm2GkMq2nMDl0zXnyu4LPTCc0uQsNCSOo70dn33yCjpr3Jaa1BAPhVG4ZAKVgDk0y8j4Bao8QrLmbtqf6xrKrs5X4rIu5V9zqb2T6g8h9Mk6TtU2MG4mz4IiR7mGRe/s320/NoteColors.png" style="height: 300px; width: 300px;" /><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXA_Nm0nC183GCEuqOQCs8NvQxaccF-9napesPbet7x_sV7l_wV3RckXCp-e4pGEyHp9TFi_bTNA-lECLIG-Od2L2CJei29_880mRagOxtBws-tr5BiefDTtC7NkyZJB8t0D9wHgHs_8dA/s1600-h/NoteColors.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5432772726902501106" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXA_Nm0nC183GCEuqOQCs8NvQxaccF-9napesPbet7x_sV7l_wV3RckXCp-e4pGEyHp9TFi_bTNA-lECLIG-Od2L2CJei29_880mRagOxtBws-tr5BiefDTtC7NkyZJB8t0D9wHgHs_8dA/s320/NoteColors.png" style="cursor: pointer; height: 73px; width: 320px;" /></a><br />
</li>
</ul><br />
<br />
About the technology, I am using processing.org (java), a midi library and some OpenGL. A sequencer generates the sounds and redirects the midi to the processing application. Everything is rendered in real time.<br />
<br />
Thanks to these indirect contributors:<br />
* Frederick Chopin<br />
* Ruin & Wesen, who wrote the Midi library for processing.org that I'm using<br />
* All processing & java peeps! w00t.<br />
<br />
<br />
<br />
Oh and I am looking for a performer that would be interested in teaming up to expand on the idea and do live performances using related technologies. Think a concert hall, a great piano player, and a giant projector screen. I have different midi visualizations in the pipeline and other ideas. Let's innovate and bring digital art and virtuoso piano concerto together.<br />
<br />
Edit 11/23/2010: Source code!<br />
<a href="https://github.com/mistercrunch/MidiVisualization">https://github.com/mistercrunch/MidiVisualization</a><br />
<br />
Edit 3/13/2011:<br />
<br />
<a href="robertturenne.com">Robert Turenne</a> has shown interest in this project and provided this screen capture<br />
. Thanks!<br />
<iframe title="YouTube video player" width="640" height="390" src="http://www.youtube.com/embed/6xMFVnrxNys" frameborder="0" allowfullscreen></iframe>Maxime Beaucheminhttp://www.blogger.com/profile/03219404575093276787noreply@blogger.com7tag:blogger.com,1999:blog-7155895405662082847.post-40583904188975913592010-01-13T21:46:00.000-08:002010-11-18T12:16:21.590-08:00Real time 3D Vertices based on Webcam data<object height="480" width="640"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=8703210&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=8703210&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="480"></embed></object><br />
<a href="http://vimeo.com/8703210">3D Vertices fed from webcam</a> from <a href="http://vimeo.com/user1518426">mistercrunch</a> on <a href="http://vimeo.com/">Vimeo</a>.<br />
<br />
<br />
So here's my latest little hack: I'm basically using the webcam feed in real time to draw 3d lines that create a grid of *vertices*. I'm using processing.org (java) and OpenGL. The Z axis is based on brightness. Then there's a simple color mapping that adds an interesting effect.<br />
<br />
Moving the mouse cursor will rotate the grid, and buttons allows to change the resolution (size of the squares). Another button will engage into a steady rotation along the Y axis.Maxime Beaucheminhttp://www.blogger.com/profile/03219404575093276787noreply@blogger.com3tag:blogger.com,1999:blog-7155895405662082847.post-85315390272352699592009-04-11T01:07:00.000-07:002011-07-27T11:14:46.565-07:00Basic contour detection with Processing.orgThis is an attempt at contour detection using a basic algorithm.<br />
<br />
<br />
<br />
<object height="480" width="640"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=4101732&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=4101732&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="480"></embed></object><br />
<a href="http://vimeo.com/4101732">Basic contour detection with Processing.org</a> from <a href="http://vimeo.com/user1518426">mistercrunch</a> on <a href="http://vimeo.com/">Vimeo</a>.<br />
<br />
<br />
I simply look at each pixel and compare it with its 8 surrounding neighbors and sum the gray scale difference. From there a certain threshold is applied to decide whether to display the pixel or not.<br />
<br />
<br />
<br />
I was expecting something a bit less noisy and more cartoonish but I love the results. Somehow it looks as though there's some image compression happening somewhere between my webcam and my pixel array.<br />
<br />
<br />
<br />
This should work pretty good for the video installation I'm working on (projector + infrared webcam + infrared spotlight). See it at <a href="http://www.blogger.com/baconwoodfestival.com">BaconWood</a> in May: and hopefully at Burning Man 2010.Maxime Beaucheminhttp://www.blogger.com/profile/03219404575093276787noreply@blogger.com1tag:blogger.com,1999:blog-7155895405662082847.post-26138080920676566342009-03-31T22:23:00.000-07:002010-11-19T08:42:58.358-08:00The Blink BuggyShit I just realized that I never posted anything on this blog of mine about the Blink Buggy: our Burning Man art car. I designed and assembled most of the electronics and wrote the software for this project. This is definitely one the most interesting things I've worked on ever.<br />
<br />
Here are a few of the best videos and pictures that have managed somehow to make their way back from Burning Man:<br />
<br />
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" data="http://www.flickr.com/apps/video/stewart.swf?v=68975" height="480" type="application/x-shockwave-flash" width="640"> <param name="flashvars" value="intl_lang=en-us&photo_secret=f7b5995c7c&photo_id=2827139064"><param name="movie" value="http://www.flickr.com/apps/video/stewart.swf?v=68975"><param name="bgcolor" value="#000000"><param name="allowFullScreen" value="true"><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/video/stewart.swf?v=68975" bgcolor="#000000" allowfullscreen="true" flashvars="intl_lang=en-us&photo_secret=f7b5995c7c&photo_id=2827139064" width="640" height="480"></embed></object><br />
<br />
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" data="http://www.flickr.com/apps/video/stewart.swf?v=68975" height="480" type="application/x-shockwave-flash" width="640"> <param name="flashvars" value="intl_lang=en-us&photo_secret=c37ee057e0&photo_id=2826230707"></param><param name="movie" value="http://www.flickr.com/apps/video/stewart.swf?v=68975"></param><param name="bgcolor" value="#000000"></param><param name="allowFullScreen" value="true"></param><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/video/stewart.swf?v=68975" bgcolor="#000000" allowfullscreen="true" flashvars="intl_lang=en-us&photo_secret=c37ee057e0&photo_id=2826230707" height="480" width="640"></embed></object><br />
<br />
<br />
Pics:<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirq-_SZhna45v-fLIyWV8Kd9BUxf2KvrfD5yWWywkC2g9VdyyY0eoYcdYLO98mFwJQfv7voQnxePSB9r3uHWTAP9ep_rZZRSKClARzLY2ACgt9M8ec74sS-ZmYJgGWBnWTbVphBjhFSr0H/s1600-h/bababalls.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5319590643258207250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirq-_SZhna45v-fLIyWV8Kd9BUxf2KvrfD5yWWywkC2g9VdyyY0eoYcdYLO98mFwJQfv7voQnxePSB9r3uHWTAP9ep_rZZRSKClARzLY2ACgt9M8ec74sS-ZmYJgGWBnWTbVphBjhFSr0H/s320/bababalls.jpg" style="cursor: pointer; float: left; height: 213px; margin: 0pt 10px 10px 0pt; width: 320px;" /></a><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWcjX4uct_cPPz_-KOFiUB5dtIID1COV0VZqLQa0az_U_6Y77ssOH1Vg5D52c0gGHpnxecINRA52Pd8O3QC3I0yjldBwJxrcG5F6AXRTs5lw5kCnlJkCEiu7uh3Oq_Cnan207I1lsKCUyI/s1600-h/baballs.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5319592488547158402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWcjX4uct_cPPz_-KOFiUB5dtIID1COV0VZqLQa0az_U_6Y77ssOH1Vg5D52c0gGHpnxecINRA52Pd8O3QC3I0yjldBwJxrcG5F6AXRTs5lw5kCnlJkCEiu7uh3Oq_Cnan207I1lsKCUyI/s320/baballs.jpg" style="cursor: pointer; float: left; height: 213px; margin: 0pt 10px 10px 0pt; width: 320px;" /></a><br />
<br />
<a href="http://farm4.static.flickr.com/3062/2826234421_d0cf402a4e_b.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" src="http://farm4.static.flickr.com/3062/2826234421_d0cf402a4e_b.jpg" style="cursor: pointer; float: left; height: 213px; margin: 0pt 10px 10px 0pt; width: 320px;" /></a><br />
<br />
<br />
<br />
Most of the pics and vids have not been very satisfying because camerasjust don't behave the way human eyes do. Anyhow, these are as good as it gets, thanks to <a href="http://www.flickr.com/photos/reidspice/">Reid Spice </a> for the pics!Maxime Beaucheminhttp://www.blogger.com/profile/03219404575093276787noreply@blogger.com1tag:blogger.com,1999:blog-7155895405662082847.post-59248748129841744562009-03-31T21:31:00.000-07:002011-07-27T11:15:59.891-07:00Trippy real time video processing(.org)I've been playing around with my webcam and the 2d/3d Java based IDE processing.org lately.<br />
<br />
Here's what that looks like:<br />
<br />
<object height="480" width="640"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=3948291&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=3948291&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="480"></embed></object><br />
<a href="http://vimeo.com/3948291">Webcam Distortion</a> from <a href="http://vimeo.com/user1518426">mistercrunch</a> on <a href="http://vimeo.com/">Vimeo</a>.<br />
<br />
<br />
What you see is basically a frame differencing algorithm with a palette animated color applied to it. I compare the current frame with the previous one, pixel per pixel and apply a color based on a cycling saturated color. The alpha of that color is based on how different the pixel is from the previous one. The leftover traces left behind the movement is there by applying a semi-transparent layer at every frame that makes previous drawings slowly disapear.<br />
<br />
I am planning a night outdoor installation for <a href="http://baconwoodfestival.com/">BaconWood</a>, an outdoor festival located in California a few weeks from now. I will use a video projector, a white screen, an infrared webcam and a infrared spotlight to create a trippy "mirror".<br />
<br />
I modified my webcam for near infrared perception by removing the little infrared filter located in front of the sensor and by sliding in a little cut out from black negative to filter out the normal light. I'm looking into buying an <a href="http://shop.ebay.com/items/?_nkw=infrared+cctv+lamp&_sacat=0&_trksid=p3286.m270.l1313&_odkw=infrared+cctv&_osacat=0">infrared spotlight</a> of some sort to stealth light the subjects which are most likely going to be dancing people or passerbys.Maxime Beaucheminhttp://www.blogger.com/profile/03219404575093276787noreply@blogger.com0tag:blogger.com,1999:blog-7155895405662082847.post-24457335586496923652008-12-24T14:33:00.000-08:002011-07-27T11:13:50.352-07:00TilesI've discovered Processing (www.processing.org) a few months back and it's been my new favorite toy.<br />
<br />
"Processing is an open source programming language and environment for people who want to program images, animation, and interactions. It is used by students, artists, designers, researchers, and hobbyists for learning, prototyping, and production."<br />
<br />
I've been working on a few projects involving image processing, real-time video distortion, fluid dynamics and a whole lot of basic vector math.<br />
<br />
Here's a small screen capture of the latest thing I've been working on:<br />
<br />
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" data="http://www.flickr.com/apps/video/stewart.swf?v=63881" height="600" type="application/x-shockwave-flash" width="600"> <param name="flashvars" value="intl_lang=en-us&photo_secret=55c5515125&photo_id=3133475043"><param name="movie" value="http://www.flickr.com/apps/video/stewart.swf?v=63881"><param name="bgcolor" value="#000000"><param name="allowFullScreen" value="true"><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/video/stewart.swf?v=63881" bgcolor="#000000" allowfullscreen="true" flashvars="intl_lang=en-us&photo_secret=55c5515125&photo_id=3133475043" width="600" height="600"></embed></object>Maxime Beaucheminhttp://www.blogger.com/profile/03219404575093276787noreply@blogger.com1tag:blogger.com,1999:blog-7155895405662082847.post-15190205921621651972008-08-15T11:18:00.001-07:002010-11-18T12:13:45.518-08:00LED Helmet<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT2LMFwgbMmPdvASZQ-RiWtZ2JSg2DxsuEHkB5p6Gj3pEDamuquuTavQ2NwGCuamBSMvDPPHejpetv-JjVk2CW40_Y8EjG5T8K_UH7rdU7Yw4DQJIQyGFwamJkQWwtnlcS8kLpNomPDPAw/s1600-h/helmet.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5234874601847566034" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT2LMFwgbMmPdvASZQ-RiWtZ2JSg2DxsuEHkB5p6Gj3pEDamuquuTavQ2NwGCuamBSMvDPPHejpetv-JjVk2CW40_Y8EjG5T8K_UH7rdU7Yw4DQJIQyGFwamJkQWwtnlcS8kLpNomPDPAw/s320/helmet.jpg" style="cursor: pointer; float: right; margin: 0pt 0pt 10px 10px;" /></a><br />
Hey ho ho.<br />
<br />
I just made a website for the helmet! I decided to go with <a href="http://www.blogger.com/www.ledhelmet.com%20">www.ledhelmet.com</a>. The proto is almost 100% done now. I added a way to save patterns, and two autopilot modes. The first one cycles through saved patterns. The second generates random patterns. The speed knob controls how fast it cycles through patterns.<br />
<br />
I submitted the link to Make Magazine. I should get a post on their blogs in the next few weeks. Hopefully. I'm hoping to get enough interest to stimulate me to make a small batch (50 - 100). I'd make a little manufacturing plant the RV I just bought and go live like gypsies with Shannon. From then on, the thing might get in range of sight of the few people who might want to buy one.<br />
<br />
I'm also thinking that I'll have a fair amount of people asking about it at Burning Man, to whom I'll reply "<a href="http://www.blogger.com/www.ledhelmet.com%20">www.ledhelmet.com</a>". It should be easy enough for people to remember. Even though altered consciousness and a general sense overload might bury this memory. Handing out cards is a bit too businessy for BM... Maybe I'll carry pen and paper and write the name down to people that show enough interest.<br />
<br />
Well well. That's it. Get one while they're hot.Maxime Beaucheminhttp://www.blogger.com/profile/03219404575093276787noreply@blogger.com0tag:blogger.com,1999:blog-7155895405662082847.post-30964569967329586152008-07-11T13:51:00.000-07:002010-11-18T12:14:17.245-08:00HelmetHere's a video featuring the flashing helmet I made. This helmet has been designed to scare crackheads but it turned out that it actually attracts them.<br />
<br />
<embed allowfullscreen="true" id="VideoPlayback" src="http://video.google.com/googleplayer.swf?docid=-8251661387677991893&hl=en&fs=true" style="height: 326px; width: 400px;" type="application/x-shockwave-flash"></embed>Maxime Beaucheminhttp://www.blogger.com/profile/03219404575093276787noreply@blogger.com1tag:blogger.com,1999:blog-7155895405662082847.post-46714223019271142302008-04-04T11:23:00.000-07:002010-11-19T08:41:14.717-08:002400 bauds memoriesI remember back in high school (cerca 92) my friend Jfred, Nic Jolin and I were all into BBSes, hacking/phreaking and that whole promising world of telecoms. <br />
<br />
We were some of the 12-14 years old rocking the 2400 to 14400 bauds modem transition era, trying to decrypt informative text hacking/phreaking/carding/bombing/trashing files mostly written in English (except for that NPC |Northern Phun Co.| fanzine). Checking out pirate and white hat BBSes, scanning for PBXs using toneloc, playing SRE and BRE were daily activities back then. That along with playing the SimCities, Civilization, Stunt Driver, the Sierra and LucasArts quests and much more. <br />
<br />
I remember that JFred attended meetings about creating the first Quebec city ISP along with Blitzkrieg, Skyzophrene, Testament Collector and some other dude who I forgot his real name but remember referring to as Gino19. Few highlights include crappy homemade bombs, trashing in Bell Canada's parking lot, back-dialing to Montreal using a local ULAVAL Unix mainframe, tripping out using JFred's mind machine, restoring the WHOLE school's system networked system at home, hacking into mailbox systems and PBXs, using a redbox (using payphone for free), Jfred setting up a black box (receiving LDs for free), JFred setting up a pirate BBS (shit I forgot the name of it...), getting a new 40MB hard drive for my 386SX16, drilling holes in SD 3 1/4 disks to make them HD (720 to 1.44MB), installing 16 disks games with a failure in the rar file, and much more.<br />
<br />
Looking back, the virtual world was so different back then, manymanymany bytes have circulated in transistors since those days. <br />
<br />
Well anyways, where I'm going with this, and how this whole era was brought back to my attention is because I've been contemplating building a Mind Machine this weekend. Should be fairly easy, and I've got all the electrical knowledge and components necessary to do that. Should take only a few hours to assemble and write basic code for it. Might even throw sound in there. I found this cool resource here:<br />
<br />
http://www.hackcanada.com/homegrown/wetware/brainwave/index.html<br />
<br />
To give me an idea on how fast should stuff flash. I might have to break into old electronics to get a headphone jack and get a pair of cheapass sunglasses somewhere, but apart from that, I've got it all.Maxime Beaucheminhttp://www.blogger.com/profile/03219404575093276787noreply@blogger.com0