<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://replica.wiki.extremist.software/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tones</id>
	<title>Noisebridge - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://replica.wiki.extremist.software/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tones"/>
	<link rel="alternate" type="text/html" href="https://replica.wiki.extremist.software/wiki/Special:Contributions/Tones"/>
	<updated>2026-04-04T05:59:21Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.13</generator>
	<entry>
		<id>https://replica.wiki.extremist.software/index.php?title=Muralizer&amp;diff=4896</id>
		<title>Muralizer</title>
		<link rel="alternate" type="text/html" href="https://replica.wiki.extremist.software/index.php?title=Muralizer&amp;diff=4896"/>
		<updated>2009-05-05T02:14:45Z</updated>

		<summary type="html">&lt;p&gt;Tones: adding a table of contents, because the header structure here is hella informative&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__ &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The short version:&#039;&#039;&#039; a drawbot plotter.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Details:&#039;&#039;&#039; a program on a computer that reads in SVG files,&lt;br /&gt;
compiling them into plotter command files.  Another program sends&lt;br /&gt;
these over serial to an arduino, which then turns them into motor&lt;br /&gt;
control events.  And, for good measure, there should be a simulator of&lt;br /&gt;
the whole thing, so people can see how their works will look before&lt;br /&gt;
committing them to whiteboard or wall.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Motivation:&#039;&#039;&#039; painting the door at 83c, maybe doing some murals&lt;br /&gt;
inside the space, and having it around as a demo for people.  We could&lt;br /&gt;
also consider loaning it out to people doing murals, etc, which would&lt;br /&gt;
be pretty neat.  It&#039;s also a great performance piece.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It sounds ambitious, but Muralizer is intended to take SVG files and&lt;br /&gt;
turn them into complete outlines!  There&#039;s a bit of work involved in&lt;br /&gt;
getting there, but I believe that I could do it myself in two weeks of&lt;br /&gt;
evenings and weekends, so we, as a group, should be able to knock it&lt;br /&gt;
out pretty quickly.  The trick is going to be division of labor and&lt;br /&gt;
staying focused, with regular sync-ups to keep folks apprised.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The architecture==&lt;br /&gt;
&lt;br /&gt;
I&#039;ve tried to design this as a set of fairly loosely-coupled&lt;br /&gt;
components.  Each component is supposed to be an evening&#039;s work for&lt;br /&gt;
someone who already knows how to solve the problem, or a couple&lt;br /&gt;
evenings/weekend for someone who&#039;s learning as they go.&lt;br /&gt;
&lt;br /&gt;
There&#039;s a gradual stack: one program turns an SVG file into plotter&lt;br /&gt;
instructions, and saves those to a file.  Then, another program takes&lt;br /&gt;
those instructions and coordinates executing them with an arduino&lt;br /&gt;
program via the serial port.  That arduino program has two parts: one&lt;br /&gt;
to decode the input from serial, and another to control the motors.&lt;br /&gt;
All of this needs a physical assembly, of course, which is the last&lt;br /&gt;
component of the actual bot.&lt;br /&gt;
&lt;br /&gt;
There&#039;s one other piece: a simulator.  Having a pure-software version&lt;br /&gt;
of Muralizer will let us play with the SVG-&amp;gt;command extractor, as well&lt;br /&gt;
as serving as a sanity check on the motor control logic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Components for the first revision==&lt;br /&gt;
&lt;br /&gt;
===SVG -&amp;gt; plotter command extractor===&lt;br /&gt;
&lt;br /&gt;
====Why does it exist?====&lt;br /&gt;
&lt;br /&gt;
This frees up our artistic friends to focus on using Illustrator or&lt;br /&gt;
Inkscape, instead of fiddling with control points.  This is key to&lt;br /&gt;
making the drawbot a tool anyone can use, and is probably the coolest&lt;br /&gt;
user feature.&lt;br /&gt;
&lt;br /&gt;
====What is it?====&lt;br /&gt;
&lt;br /&gt;
A script that turns an SVG input file into a set of plotter commands.&lt;br /&gt;
However that&#039;s accomplished is great, but it would be helpful if it&lt;br /&gt;
were reasonably cross-platform.  A simple command-line program that&lt;br /&gt;
runs as&lt;br /&gt;
&lt;br /&gt;
  ./mural_compile foo.svg foo.plot&lt;br /&gt;
&lt;br /&gt;
would be great!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====What&#039;s the input?====&lt;br /&gt;
&lt;br /&gt;
SVG.  That&#039;s a big can of worms, so let&#039;s focus on just extracting&lt;br /&gt;
bezier curves directly for now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====What&#039;s the output?====&lt;br /&gt;
&lt;br /&gt;
The control points for bezier curves, one per line, with a B at the&lt;br /&gt;
beginning of the line:&lt;br /&gt;
&lt;br /&gt;
  B 0.2 0.1 0.4 0.8 0.6 0.10 0.8 0.8&lt;br /&gt;
&lt;br /&gt;
For now, let&#039;s assume the space is square and of dimension 1.0x1.0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Plotter interface (computer and arduino protocol parser)===&lt;br /&gt;
&lt;br /&gt;
====Why does it exist?====&lt;br /&gt;
&lt;br /&gt;
We want to draw things that are likely too big to fit into arduino&lt;br /&gt;
memory (unless we do some annoying things).  We&#039;re better off to just&lt;br /&gt;
treat the muralizer as a computer peripheral, and do most of the heavy&lt;br /&gt;
graphical lifting on the computer side.  Why not just put this driver&lt;br /&gt;
into the compiler program?  Well, that would keep us from doing neat&lt;br /&gt;
generative art things, etc.  If we separate the format from the&lt;br /&gt;
driver, we can use something besides the image compiler to draw, which&lt;br /&gt;
is helpful.  Also, it keeps these two components really simple and&lt;br /&gt;
straightforward.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====What is it?====&lt;br /&gt;
&lt;br /&gt;
It would be ideal if this was a standalone program that read in a&lt;br /&gt;
command file as described above and sent each line across serial.&lt;br /&gt;
After each line, it should wait for a confirmation &amp;quot;+OK&amp;quot; before&lt;br /&gt;
sending the next line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====What&#039;s the input?====&lt;br /&gt;
&lt;br /&gt;
A text file of the format&lt;br /&gt;
&lt;br /&gt;
  B 0.2 0.1 0.4 0.8 0.6 0.10 0.8 0.8&lt;br /&gt;
which is sent across serial to the arduino as-is.&lt;br /&gt;
&lt;br /&gt;
====What&#039;s the output?====&lt;br /&gt;
&lt;br /&gt;
The arduino side should parse these B-lines, then echo back over&lt;br /&gt;
serial:&lt;br /&gt;
&lt;br /&gt;
  # Bezier (0.2,0.1), (0.4,0.8), (0.6,0.1), (0.8, 0.8)&lt;br /&gt;
  +OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Motor control (pick motors, arduino software)===&lt;br /&gt;
&lt;br /&gt;
====Why does it exist?====&lt;br /&gt;
&lt;br /&gt;
Obviously enough, this is how we actually do output.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====What is it?====&lt;br /&gt;
&lt;br /&gt;
It takes in the bezier control points and runs the motor control&lt;br /&gt;
operations required to actually draw those points.  That is: it plans&lt;br /&gt;
how long to take for the stroke, then figures out how fast to spin the&lt;br /&gt;
motors (and in which direction) at each instant within that time&lt;br /&gt;
period.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====What&#039;s the input?====&lt;br /&gt;
&lt;br /&gt;
A set of bezier control points as above.  I have worked out the math&lt;br /&gt;
for how to move the motors over time to plot a bezier curve, so you&lt;br /&gt;
just need to to run through that, controlling motor speed as appropriate.&lt;br /&gt;
&lt;br /&gt;
I don&#039;t know which motors to choose here, but it seems like variable&lt;br /&gt;
speed DC motors are perfect for the job.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====What&#039;s the output?====&lt;br /&gt;
&lt;br /&gt;
Changing lengths of control lines.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Motor control simulator (arduino/processing interfacing)===&lt;br /&gt;
&lt;br /&gt;
====Why does it exist?====&lt;br /&gt;
&lt;br /&gt;
This is how we&#039;re going to test the whole image compilation/protocol&lt;br /&gt;
stack without having to build the hardware up front.  This is critical&lt;br /&gt;
for allowing us to get our control systems roughed-in early, and to&lt;br /&gt;
give us something to sanity check against.  There&#039;s a lot of other&lt;br /&gt;
moving (software) parts, so having a reference implementation is really helpful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====What is it?====&lt;br /&gt;
&lt;br /&gt;
This is a pretty/ugly little program with a graphical display.  I&#039;ve&lt;br /&gt;
knocked out something kind of crappy in Processing, and it would be&lt;br /&gt;
great if the next version was using that framework as well.  (Flash&lt;br /&gt;
would also be pretty cool).  It&#039;s imperative that this runs reasonably&lt;br /&gt;
well cross-platform, as this is how we&#039;re going to make sure our&lt;br /&gt;
SVG-&amp;gt;command compiler actually works!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====What&#039;s the input?====&lt;br /&gt;
&lt;br /&gt;
This should take in the command files, of the format&lt;br /&gt;
&lt;br /&gt;
  B 0.2 0.1 0.4 0.8 0.6 0.10 0.8 0.8&lt;br /&gt;
&lt;br /&gt;
====What&#039;s the output?====&lt;br /&gt;
&lt;br /&gt;
A little graphical window that shows the wires moving around (or&lt;br /&gt;
circles representing them), and draws as appropriate.  It&#039;s nice to&lt;br /&gt;
make it take a little time to draw, but doing it nearly-instant is&lt;br /&gt;
also good.  Not everyone delights in watching process unfold, after&lt;br /&gt;
all.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Pen caddy and overall physical assembly===&lt;br /&gt;
&lt;br /&gt;
====Why does it exist?====&lt;br /&gt;
&lt;br /&gt;
There&#039;s a lot of physical stuff in a project like this one.  Having&lt;br /&gt;
everyone worry about it seems inefficient, so let&#039;s put it under the&lt;br /&gt;
guise of the person who cares the most: the person who&#039;s responsible&lt;br /&gt;
for the pen itself.&lt;br /&gt;
&lt;br /&gt;
====What is it?====&lt;br /&gt;
&lt;br /&gt;
This is the sum total of the physical device.  Basically, it&#039;s&lt;br /&gt;
everything but the motors and the software: the pulleys, gears, pen&lt;br /&gt;
caddy, and mounting hardware.  There&#039;s a lot of important details in&lt;br /&gt;
here, and they&#039;re going to get neglected if we don&#039;t put someone sharp&lt;br /&gt;
on them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====What&#039;s the input?====&lt;br /&gt;
&lt;br /&gt;
The pen caddy needs to take in a logic +5V and be able to push itself&lt;br /&gt;
off the wall, so we can move the pen from the end of one line to the&lt;br /&gt;
beginning of another without drawing a line between the two points.&lt;br /&gt;
When it does so, it might travel over existing lines, and we don&#039;t&lt;br /&gt;
want to smudge them, so it needs some way to travel.  I&#039;d suggest&lt;br /&gt;
Wartenberg Wheels or something similar.  &lt;br /&gt;
&lt;br /&gt;
====What&#039;s the output?====&lt;br /&gt;
&lt;br /&gt;
Lines!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Tones</name></author>
	</entry>
	<entry>
		<id>https://replica.wiki.extremist.software/index.php?title=Sewing_Workshop&amp;diff=4670</id>
		<title>Sewing Workshop</title>
		<link rel="alternate" type="text/html" href="https://replica.wiki.extremist.software/index.php?title=Sewing_Workshop&amp;diff=4670"/>
		<updated>2009-04-21T17:31:17Z</updated>

		<summary type="html">&lt;p&gt;Tones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A workshop to demystify the sewing machine and sewing in general.  Non-exhaustive subjects to be covered, or at least touched on:&lt;br /&gt;
&lt;br /&gt;
* basic hand sewing&lt;br /&gt;
* How to run a sewing machine&lt;br /&gt;
* common sewing machine problems &amp;amp; their solutions&lt;br /&gt;
* mending tears, button replacement, patching&lt;br /&gt;
* hack your clothing (partially or completely rework an existing garment)&lt;br /&gt;
* what&#039;s a serger &amp;amp; how does it work?&lt;br /&gt;
&lt;br /&gt;
The goal is to get you comfortable enough to add sewing to your list of project techniques.  Some examples I&#039;ve heard about include a glove that you can operate an iPod with; Noisebridge sew-on patches; mending backpacks; an RFID cloning glove; and of course the [[Compass Vibro Anklet]].&lt;br /&gt;
&lt;br /&gt;
Interested?  Date is not set.  Add your name below and when might be a good time.&lt;br /&gt;
----&lt;br /&gt;
* [[User:rachel|Rachel]] (not Monday or Wednesday evenings)&lt;br /&gt;
* [[User:Elgreengeeto|Skory]] (not Wednesday, I go to ML)&lt;br /&gt;
* [[User:tones|Tones]] (whenever)&lt;/div&gt;</summary>
		<author><name>Tones</name></author>
	</entry>
	<entry>
		<id>https://replica.wiki.extremist.software/index.php?title=User:Tones&amp;diff=3048</id>
		<title>User:Tones</title>
		<link rel="alternate" type="text/html" href="https://replica.wiki.extremist.software/index.php?title=User:Tones&amp;diff=3048"/>
		<updated>2009-02-01T21:35:41Z</updated>

		<summary type="html">&lt;p&gt;Tones: New page: I&amp;#039;m Tim Jones.  My external homepage is http://timjon.es/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;m Tim Jones.&lt;br /&gt;
&lt;br /&gt;
My external homepage is http://timjon.es/&lt;/div&gt;</summary>
		<author><name>Tones</name></author>
	</entry>
</feed>