<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- generator="FeedCreator 1.7.2-ppt (info@mypapit.net)" -->
<rss version="2.0">
    <channel>
        <title>Thingiverse - WilliamAAdams's Things</title>
        <description><![CDATA[Keep up to date on all the things that WilliamAAdams is sharing.]]></description>
        <link>http://www.thingiverse.com/WilliamAAdams</link>
        <lastBuildDate>Tue, 21 May 2013 08:13:52 +0100</lastBuildDate>
        <generator>FeedCreator 1.7.2-ppt (info@mypapit.net)</generator>
        <language>en-us</language>
        <copyright>Copyright 2013, Thingiverse.com</copyright>
        <item>
            <title>Coaster Blob</title>
            <link>http://www.thingiverse.com/thing:14810</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:14810"><img src="http://thingiverse-rerender.s3.amazonaws.com/renders/cf/5b/46/b9/b3/CoasterBlob_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>Using the latest Banate CAD: <a href="http://williamaadams.wordpress.com/2011/12/19/banate-cad-lurches-towards-2011-finish-line/" target="_blank" rel="nofollow">williamaadams.wordpress.com/2011/12/19/banate-cad-lurches-towards-2011-finish-line/</a><br />
<br />
I took a snapshot out of one of the blobby animations I was doing.  I then pulled that .stl into OpenScad and created a little cup holder for my desk.<br />
<br />
This thing is a convenient blobby cup holder.  Put some sticky rubber feet pads on the bottom, and it will make a nice addition to your desk.<br />

</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Mon, 19 Dec 2011 11:59:53 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:14810</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/a9/74/b4/68/1c/CoasterBlob.stl" length="1138647" type="application/sla"/>
        </item>
        <item>
            <title>Dual Profiled Tubes</title>
            <link>http://www.thingiverse.com/thing:14388</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:14388"><img src="http://thingiverse-production.s3.amazonaws.com/renders/d0/17/ad/a7/f2/starhead_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>A couple of times now, I've seen discussions around the topic of creating tubular shapes that have one profile on one end, and another profile on the other end.<br />
<br />
These things are a couple of examples of creating such things.  <br />
<br />
It's a work in progress, but it's a fairly straight forward process.  I think this technique can be used to create things like frosting heads, or sugar cookie templates.<br />
<br />
It's still a work in progress because when I generate the shape in Banate CAD, the face normals are turned the wrong way, so I use Mesh Lab to flip them after the .stl is generated.<br />
<br />
If they could be mated to something with threads on it, you could imagine making hose attachments fairly easily.  Also good for mating differently shaped things, like square tubes to round tubes.
</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Wed, 07 Dec 2011 11:27:07 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:14388</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/9f/61/5e/49/52/extruder.fab" length="2090" type="application/octet-stream"/>
        </item>
        <item>
            <title>Santa Blob</title>
            <link>http://www.thingiverse.com/thing:14327</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:14327"><img src="http://thingiverse-production.s3.amazonaws.com/renders/fa/91/82/a7/77/SantaBlob_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>Well, "Santa" might be a bit of a stretch, but it is that time of the year.<br />
<br />
Since the latest version of Banate CAD has blob support: <br />
<a href="http://williamaadams.wordpress.com/2011/12/05/banate-cad-third-release/" target="_blank" rel="nofollow">williamaadams.wordpress.com/2011/12/05/banate-cad-third-release/</a><br />
<br />
I can finally make nice blobular Christmas ornaments.<br />
<br />
This thing is my attempt to make something vaguely humanoid.  My daughter suggested I just go for a snowman, for pragmatic reasons (I'm no artist), but I went for some arms and legs anyway.  I'm sure given enough typerwriters I could make it look really human in time.<br />
<br />

</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Mon, 05 Dec 2011 16:57:09 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:14327</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/ff/e9/d0/0c/76/santa_blob.stl" length="534084" type="application/sla"/>
        </item>
        <item>
            <title>Meta Peanut</title>
            <link>http://www.thingiverse.com/thing:14249</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:14249"><img src="http://thingiverse-production.s3.amazonaws.com/renders/5a/1a/4d/09/4e/Peanut_2_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>I was hungry, so I thought I'd model up some peanuts.<br />
<br />
This thing is actually formed out of metaballs.  <br />
<br />
It's just a blob, with a displacement map on the vertices, and the same texture as a color map on top of that.<br />
<br />
The technique is similar to how the Earth Shot thing was created, but it uses the metaballs to calculate vertices.<br />
<br />
The texture map file was downloaded from the internet, so it has a water mark.  You can make a 2-nut peanut, or a 3-nut, or whatever.  Just use more balls.  Choosing a better texture/height map will make it look better.<br />

</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Sun, 04 Dec 2011 02:47:56 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:14249</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/5a/ad/bb/12/4c/peanut_2.stl" length="3999784" type="application/sla"/>
        </item>
        <item>
            <title>MetaBalls are Among Us!!</title>
            <link>http://www.thingiverse.com/thing:14246</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:14246"><img src="http://thingiverse-production.s3.amazonaws.com/renders/35/37/47/a7/b3/BlobFace_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>I first tried to model metaballs in OpenScad.  That effort was preliminary, indicating to me that it's not an easy egg to crack.<br />
<br />
This thing cracks the proverbial metaball egg.<br />
<br />
I have implemented a metaball routine in Banate CAD which gives you fairly decent results in relative real-time.  That is, you can setup a fairly simple network of 'balls', and generate an isosurface for them in a matter of about a second, or a few seconds if you want to go for much higher resolution, or have a network with a ton of balls in it.<br />
<br />
Metaballs/Blobs are used quite a lot in games for getting that nice blobbly affect on characters.  It tends to make things look more organic than what you can typically achieve with more mechanical mechanisms.<br />
<br />
This is great for modeling as you can quickly try out various configurations of balls to get all sorts of blobby effects.  The "seat", or "face" model included here consists of just 4 influencing balls, so it's fairly simple.<br />
<br />
In the picture, I've used fairly high resolution.  The model is much lower resolution, but realistically, it would print about the same.<br />
<br />
Also, in the picture, I'm showing the influencing balls, just for visualilzation.  I turn them off to actually generate the .stl file.<br />
<br />
I think the approach I'm taking is actually unique, as I haven't quite seen it done my particular way in the literature.  Not a bad result for NOT using the GPU, and doing it purely in Lua.<br />
<br />
You can play with the .fab, but it won't have the same results as I'm getting until this Sundays (12/4/2011) release of Banate CAD.<br />

</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Sun, 04 Dec 2011 00:12:05 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:14246</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/8b/91/43/1c/4b/blobs.stl" length="801084" type="application/sla"/>
        </item>
        <item>
            <title>Earth Shot</title>
            <link>http://www.thingiverse.com/thing:14070</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:14070"><img src="http://thingiverse-production.s3.amazonaws.com/renders/65/04/e2/02/c5/Earth_Colored_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>Since I made a new release of Banate CAD today: <br />
<a href="http://williamaadams.wordpress.com/2011/11/28/banate-cad-second-release/" target="_blank" rel="nofollow">williamaadams.wordpress.com/2011/11/28/banate-cad-second-release/</a><br />
<br />
I thought I'd make somethingto to go with it.  Well, while I was out in space taking pictures of the moon, and space ships, I thought, hay, why not turn the camera towards earth and take a couple of snaps, and create a model while I'm at it.<br />
<br />
This thing is a vector normal mapped (a new term I found on the internet) model of the earth.<br />
<br />
I grabbed a couple of high quality pictures from the internet, and just threw them into Banate CAD, the same way as I created the moon shot, and there you have it!<br />
<br />
I'm sure someone is dying to tell me the earth is an oblate spheroid, and that I can't model it strictly as a sphere, but I think at these sizes it won't really matter.
</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Mon, 28 Nov 2011 14:13:42 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:14070</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/7b/e0/b5/e4/bb/Earth.stl" length="31937784" type="application/sla"/>
        </item>
        <item>
            <title>Gandhi Lithophane</title>
            <link>http://www.thingiverse.com/thing:14044</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:14044"><img src="http://thingiverse-production.s3.amazonaws.com/renders/24/a8/20/07/ab/gandhi_litho_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>Lithophanes and Height maps seem to be a popular subject these days.  I found an interesting picture of Gandhi on a stamp.<br />
<br />
This is a Lithophane of Gandhi on a stamp.<br />
<br />
Any number of lithophane prints can be made by simply changing a file name in the .fab script.<br />
<br />

</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Sun, 27 Nov 2011 20:57:43 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:14044</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/bc/9d/90/18/4b/gandhi_litho.stl" length="6553684" type="application/sla"/>
        </item>
        <item>
            <title>Parametric Torus in Banate CAD</title>
            <link>http://www.thingiverse.com/thing:14017</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:14017"><img src="http://thingiverse-production.s3.amazonaws.com/renders/58/e9/da/98/d1/toroid_saucer_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>Ever since I saw the Mobius Heart earlier this week: <br />
<a href="http://www.thingiverse.com/thing:13861" target="_blank" rel="nofollow">thingiverse.com/thing:13861</a><br />
<br />
I've been slaving away at the forge trying to replicate that feat in a solid math sort of way.<br />
<br />
This thing represents a parametric torus, which is NOT the same thing as being able to create a heart shaped Mobius strip, but it is one step closer.<br />
<br />
Basically, you can give the torus a function which determines the profile of the cross section of the torus as it sweeps around.  In this case, I've used the SuperEllipse formula: <br />
<a href="http://en.wikipedia.org/wiki/Superellipse" target="_blank" rel="nofollow">en.wikipedia.org/wiki/Superellipse</a><br />
<br />
You could just as easily substitute a 2D superformula and make even more wild Torii.<br />
<br />
The critical piece of code is right here:<br />
<br />
	local seprofiler = param_superellipse.new({<br />
		XRadius = 3,<br />
		ZRadius = 20,<br />
		N = 0.2,<br />
		})<br />
<br />
	local lshape = shape_torus.new({<br />
		HoleRadius = offset,<br />
		ProfileSampler = seprofiler,<br />
		USteps = 90,<br />
		WSteps = 180,<br />
		MinPhi = math.rad(0),<br />
		MaxPhi = math.rad(360),	-- Great circle<br />
		MinTheta = 0,<br />
		MaxTheta = math.rad(360),	-- profile<br />
		})<br />
	addshape(lshape)<br />
<br />
Just change the values on that param_superellipse thing and you'll get different shapes.  If 'N'=1, for example, you'll get more classic Ellipse/Circle behavior.  'N' 1, up to around 5, and you get the pointy thing going on.<br />
<br />
While I was out exploring the moon using this model:<br />
<a href="http://www.thingiverse.com/thing:14011" target="_blank" rel="nofollow">thingiverse.com/thing:14011</a><br />
<br />
I came across a space ship, which you can see modeled here.  There was some sort of inscription, which I interpret to mean:<br />
"All Your Toroid Are Belong to Us!"<br />
<br />
I took a scan of the inside, and as you can see, it's empty in there.  Further proof that the aliens have long since left our civilization behind.  And also further proof that the moon, and everything that surrounds it, is nothing more than an inflated toy.<br />

</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Sun, 27 Nov 2011 13:19:26 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:14017</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/82/d8/b7/1a/06/torus_ship.stl" length="307284" type="application/sla"/>
        </item>
        <item>
            <title>Moon Shot</title>
            <link>http://www.thingiverse.com/thing:14011</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:14011"><img src="http://thingiverse-production.s3.amazonaws.com/renders/78/6e/0e/02/be/MoonShot_textured_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>Inspired by Bre's Moon crater, I thought, why not the whole moon?<br />
<br />
This thing is a bump mapped sphere that uses the planetary map data/images from here: <br />
<a href="http://www.johnstonsarchive.net/spaceart/cylmaps.html" target="_blank" rel="nofollow">johnstonsarchive.net/spaceart/cylmaps.html</a><br />
<br />
Specifically, I used this one: <br />
<a href="http://www.johnstonsarchive.net/spaceart/moonbumpmap2.jpg" target="_blank" rel="nofollow">johnstonsarchive.net/spaceart/moonbumpmap2.jpg</a><br />
<br />
I essentially used the same bump mapping technique I used on this bowl: <a href="http://www.thingiverse.com/thing:13991" target="_blank" rel="nofollow">thingiverse.com/thing:13991</a><br />
<br />
That is, use the picture as a height map.  Use that height map to displace the vertices around the sphere.  At the same time, use the image to colorize the thing as well, if you want extra reality.<br />
<br />
Now came the special part.  Since I had the moon in my hands, I wanted to split it open and see what it was made of, answering that age old question once and for all.<br />
<br />
So, I cracked it open, and found that it was in fact hollow!  No green men, no Amazonian women, no cheese, nothing, just a void.  Unlike answering the Easter Bunny question, this was quite a let down.<br />
<br />
And lastly, since I was exploring the surface using MeshLab, I finally found the man in the moon.  You can see him highlighted in red smiling back at us.<br />
<br />
This has got to be great for science exploration!<br />
<br />
A bit about the .stl files.  I used Banate CAD to generate the models directly.  The full moon has roughly 500,000 vertices, and double that in terms of faces.  The partial moon has double the number of vertices because it has to generate the 'inside' as well as the outside.  Each one took about 40-50 seconds to generate on my standard issue 3 year old Phenom II based machine.  The generation time has more to do with the number of vertices than any other complexities.  The routines create the normals for each face, whether they're needed or not, so this time could probably be cut in half in cases where you don't really need the normals, but it would not look nice when you render.<br />
<br />
To generate any spherical thing, you would just change one line of code in the .fab file:<br />
<br />
	local heightsampler = ImageSampler.new({<br />
		Filename='moonbumpmap2_720_360.png',<br />
		Size = size,<br />
		Resolution = res,<br />
		MaxHeight=16,<br />
	})<br />
<br />
Change "Filename = '...'",<br />
to be whatever file you so happen to want to bump map.<br />
<br />
This is the quick and dirty form of Bump/Height mapping.  There are two things that should be done to improve the quality of such things.  First, I'm doing a straight translation from the height map to a height value.  What I should really be doing is taking an average, so you don't see such artifacting.  The other thing is, for a sphere, there are better ways to apply a texture than to simply wrap the rectangle.  By wrapping the rectangular image to the sphere, you lose something at the poles.  I need better images which account for the spherical nature.<br />
<br />
But hay, for changing just a single line of code, this is not a bad technique.
</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Sun, 27 Nov 2011 09:42:27 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:14011</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/e9/df/85/c4/29/MoonShot.stl" length="25879534" type="application/sla"/>
        </item>
        <item>
            <title>Bumpy Bowl with Banate CAD</title>
            <link>http://www.thingiverse.com/thing:13991</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:13991"><img src="http://thingiverse-production.s3.amazonaws.com/renders/1b/6c/1d/08/fb/bumpy_bowl_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>Not being very good with the UI 3D tools, but being good with the code... I wanted to create an interesting looking bowl, that had a height map as the texture of the surface.<br />
<br />
This thing takes a procedural texture pattern (checkerboard) and uses that to create a height map, which is then used to displace the vertices of an ellipsoid.<br />
<br />
It goes together rather nicely.  And, since you can make a height map out of any image, you can get some very interesting effects going on.<br />
 
</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Sat, 26 Nov 2011 17:29:56 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:13991</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/73/65/50/55/8e/bumpy_bowl.stl" length="6524084" type="application/sla"/>
        </item>
        <item>
            <title>Height Maps in Banate CAD</title>
            <link>http://www.thingiverse.com/thing:13959</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:13959"><img src="http://thingiverse-production.s3.amazonaws.com/renders/64/1e/92/be/a1/HeightMap_MeshLab_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>One of the last extension libraries I wrote in OpenScad had to do with height maps. <br />
<br />
This thing implements height maps in Banate CAD.<br />
<br />
You can read the blog entry here:   <a href="http://williamaadams.wordpress.com/2011/11/25/and-height-maps-for-all/" target="_blank" rel="nofollow">williamaadams.wordpress.com/2011/11/25/and-height-maps-for-all/</a><br />
<br />
It's fairly straight forward in Banate CAD to do a height map from any image.  It's actually the ImageSampler object that has the capability.  You can then add this to this other object called a RubberSheet, and away you go!<br />
<br />
You can also specify a thickness, so it's not just a surface, it's actually a solid.<br />
<br />
The image with the purplish background is the generated mesh loaded into MeshLab.  MeshLab was kind enough to remove the duplicate vertices for me.  I'll have to do that within Banate CAD itself some day.
</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Fri, 25 Nov 2011 13:18:20 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:13959</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/41/73/3f/6f/ff/firstheightmap.stl" length="13209684" type="application/sla"/>
        </item>
        <item>
            <title>Banate CAD saddle</title>
            <link>http://www.thingiverse.com/thing:13936</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:13936"><img src="http://thingiverse-production.s3.amazonaws.com/renders/ba/33/6a/53/7a/bezier_table_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>I need a funky saddle table.<br />
<br />
This thing is the first 'solid' generated from Banate CAD directly, without the help of any other tools.  I can at least open the .stl in GLCPlayer. <br />
<br />
At the moment, I don't export normals so if your viewer can't deal with that, it will fail.  Of course, things can only improve from here.<br />
<br />
I generated this using a Bezier surface description:<br />
<br />
local lshape3 = shape_bicubicsurface.new({<br />
		M=cubic_bezier_M(),<br />
		UMult=1,<br />
		Mesh = mesh,<br />
		Thickness = thickness,<br />
		USteps = 16,<br />
		WSteps = 16,<br />
		})<br />
addshape(lshape3)<br />
<br />
or more simply:<br />
<br />
bicubicsurface{Mesh = mesh, Thickness = -3}<br />
<br />
<br />
You can specify whatever thickness you want for the sheet.  Using negative values will go 'in' from the normal vectors.<br />
<br />
Of course, while in the renderer, you can texture map the thing just so you see something interesting while you're messing with your geometry.<br />
<br />
UPDATE: Uploaded the .fab file<br />

</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Thu, 24 Nov 2011 14:50:04 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:13936</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/f5/1f/f5/88/71/file.stl" length="175721" type="application/sla"/>
        </item>
        <item>
            <title>Banate CAD - version first</title>
            <link>http://www.thingiverse.com/thing:13773</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:13773"><img src="http://thingiverse-production.s3.amazonaws.com/renders/29/e2/2d/9b/87/Demo1_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>I uploaded my first design to Thingiverse on November 20th 2010.  That first thing was a part from my "Klikko" play set: <a href="http://www.thingiverse.com/thing:4828" target="_blank" rel="nofollow">thingiverse.com/thing:4828</a><br />
<br />
Since then, I've produced roughly 130 'things', many of which were iterations on core design explorations.<br />
<br />
It's been fun.  I've learned a lot about OpenScad, 3D modeling in general, and fallen in love with rapid prototyping and manufacturing.<br />
<br />
I've taken all that I've learned to date, and created a new CAD program called Banate CAD.  You can read about it here: <a href="http://williamaadams.wordpress.com/hum-banate/" target="_blank" rel="nofollow">williamaadams.wordpress.com/hum-banate/</a><br />
<br />
As was once said about my Bezier work, I think I've 'rooted' CAD.  It's wide open, easily extensible, can create anything you can describe with algorithms.  It's almost as good as sliced bread.<br />
<br />
It's seriously just a work in progress, although you can use it to do lots of pretty visualizations.<br />
<br />
UPDATE: I have uploaded a copy of the program here as well.  I have received at least one report that it works on Linux (Fedora 15), so that bodes well, considering I've never run it there myself.<br />
<br />
The bowl_12.stl file here is of no consequence.  It's just there because I could not create a thing with just a picture.
</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Sun, 20 Nov 2011 11:43:53 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:13773</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/d9/07/ba/73/c5/bowl_12.stl" length="964966" type="application/sla"/>
        </item>
        <item>
            <title>Straight Metal Jacket - With inset mounts</title>
            <link>http://www.thingiverse.com/thing:13346</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:13346"><img src="http://thingiverse-production.s3.amazonaws.com/renders/72/04/f9/0c/24/WP_000131_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>I want to mount metal bars onto wood, or other structures, without having to drill holes in the metal bars, or rather, I want to mount them with a bit of an offset.<br />
<br />
This thing is a slight modification of the original.  I added a taper to the mounting holes so that when I use screws with a taper, they won't split the plastic.<br />
<br />

</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Sun, 06 Nov 2011 13:26:47 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:13346</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/d0/e1/c7/b2/8e/flat_jacket_slip_inset_4.stl" length="49424" type="application/sla"/>
        </item>
        <item>
            <title>Super Scraper</title>
            <link>http://www.thingiverse.com/thing:13314</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:13314"><img src="http://thingiverse-rerender.s3.amazonaws.com/renders/c0/04/9e/66/20/superscraper_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>I was fiddling about with the SuperShape thing: <a href="http://www.thingiverse.com/thing:12770" target="_blank" rel="nofollow">thingiverse.com/thing:12770</a> and I 'discovered' this thing while playing around with various parameters.<br />
<br />
This thing can be used as a scraper of some sort.  I'm thinking to print one and use it as a pastry scraper, or something else in the kitchen.<br />
<br />
I generated it using these parameters:<br />
<br />
RenderSuperShape(<br />
		supershape(1, 0.3, 0.3, 0.3, 1, 1),<br />
		supershape(5, 15.4425, -0.453763, 87.07, 1, 1),<br />
		48,<br />
		32))<br />
<br />
With those sharp edges, it might be quite challenging to print.  I think it has a modern look to it, and it shows how kitchen items might be able to take on more of a flair, beyond the standard industrial looks.<br />
<br />
I did in fact use OpenScad to generate the .stl, but I actually used Lua to generate the .scad in the first place, and that's not particularly interesting as yet, so the .stl is really no different than the .scad.<br />
<br />
With different scalings, it can become something else like a flipper, rudder, or what have you.<br />

</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Sat, 05 Nov 2011 13:00:51 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:13314</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/11/c3/c1/8a/36/superscraper.stl" length="649197" type="application/sla"/>
        </item>
        <item>
            <title>Tactile Bits in OpenScad</title>
            <link>http://www.thingiverse.com/thing:13135</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:13135"><img src="http://thingiverse-production.s3.amazonaws.com/renders/f3/df/b8/5a/fc/tactile_bits_4_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>I've been programming for quite a few years now, and since the beginning of time (programming my Commodore P.E.T.), I could not remember binary bit patterns to save my life!<br />
<br />
This thing gives me the ability to print out binary representations of numbers.  That gives me something nice and tactile that I can look at, pick up, and play around with.<br />
<br />
Perhaps if I had this as a toy when I was younger, I would not have such problems remembering binary encodings because the memories would have been cemented in something physical.<br />
<br />
Within the test_boolean.scad file, you will find the module: display_binary(number, bits, withplate)<br />
<br />
You give it a number, and the number of bits you want to display, and whether you want a base plate attached or not.<br />
<br />
And out comes your binary representation of your number.<br />
<br />
If you care to look deeper, you can take a look at the boolean.scad file.  In there you will find some useful bit banging operators like RSHIFT, LSHIFT, BIT, BTEST, 32BITAND, 32BITNOT, 32BITXOR, 32BITOR, and other boolean algebra thingies.  These might be useful for other things some day.<br />
<br />
In particular, you could perform an operation, and print the result of the operation tactally.<br />

</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Mon, 31 Oct 2011 17:46:13 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:13135</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/da/ae/51/b8/e2/boolean.scad" length="7281" type="application/octet-stream"/>
        </item>
        <item>
            <title>Tube Connector with Captured Nut</title>
            <link>http://www.thingiverse.com/thing:12861</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:12861"><img src="http://thingiverse-rerender.s3.amazonaws.com/renders/2c/2b/16/4b/f8/tubeconnector_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>I have the need to mate a 1/4" thick piece of aluminum to a 1/2" round tubing.  I need to be able to slide the mated aluminum along the tubing, and be able to lock it in place.<br />
<br />
This thing is the tube connector, with a captured nut on the side.<br />
<br />
Although somewhat related to this thing: <a href="http://www.thingiverse.com/thing:8356" target="_blank" rel="nofollow">thingiverse.com/thing:8356</a><br />
 It is not a strict derivative, but rather in the same family.<br />
<br />
You can easily create a mashup of this thing and some other things, and get things sliding along tubes.<br />
<br />
The fillet is on the bottom to help with reducing the amount of support material needed.  It may not help at all depending on your printer.  You can turn off the fillet, and simply get support under the overhang.<br />
<br />
It is fully parameterized, so you can specify the size of the tubing, the length of the connector, and the size of the nut to be captured, as well as the number of facets that nut has (default 6).<br />

</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Mon, 24 Oct 2011 09:14:52 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:12861</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/07/6c/d4/2e/18/TubeConnector.scad" length="2532" type="application/octet-stream"/>
        </item>
        <item>
            <title>Bisymmetric Hendecahedron</title>
            <link>http://www.thingiverse.com/thing:12800</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:12800"><img src="http://thingiverse-rerender.s3.amazonaws.com/renders/c2/96/a4/d3/6c/hendecahedron_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>It's Saturday, it's raining, there's work to be done!<br />
<br />
After I posted that SuperShape stuff, user mattmoses pointed me at this site: <a href="http://www.steelpillow.com/polyhedra/five_sf/five.htm" target="_blank" rel="nofollow">steelpillow.com/polyhedra/five_sf/five.htm</a> suggesting there are interesting space filling polehedra in the world that need to be turned into nicely printable models.<br />
<br />
This thing is the one that came first, and that I could easily pronounce.<br />
<br />
It's an interesting polyhedron in that it is self dual, meaning, it has 11 vertices, and 11 faces, so it can fit vertex to face, within itself, just like my favorite tetrahedron.<br />
<br />
Mostly what is in this thing is a translation of the cartesian coordinates from that web site.  I used their schematic to create the faces and edges.  I could improve the edge selection so that it looks better when you're rendering in wireframe mode, but that can be an easy revision some time.<br />
<br />
So, what's neat about this easily pronounced polyhedron?  It's stackable!!  That means, if you put a bit of stickyness onto the faces, you can stack these together and fill a space.  Isn't that what Legos do?  Yah, like that, except it's a much more interesting shape than a rectangle.<br />
<br />

</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Sat, 22 Oct 2011 13:55:59 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:12800</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/4c/8a/ca/47/0b/PolyhedronRenderer.scad" length="1523" type="application/octet-stream"/>
        </item>
        <item>
            <title>Seven Segment Digits in OpenScad</title>
            <link>http://www.thingiverse.com/thing:12782</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:12782"><img src="http://thingiverse-production.s3.amazonaws.com/renders/c6/06/32/1e/e9/plate_1879_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>A long time back, when I was first learning to code in Windows, I rand the Charles Petzold digital clock application as a sample.<br />
<br />
Since then, I've done everything with that clock from rendering in OpenGL to high resolution timers.<br />
<br />
This thing takes the seven segment digital display and renders it in OpenScad.<br />
<br />
It's pretty straight forward.  There are three routines.<br />
DisplayDigit(number, height) - Will display a single digit, centered at the origin.<br />
<br />
DisplayDigits(numbers, count, height) - Will display a sequence of numbers, separated by a gap of 4mm.<br />
<br />
RenderDigitsPlate(digits, count, thickness, height) - Will display a sequence of numbers, and put a nice rectangle underneath them in case you want to easily CSG the sequence of numbers with something else.<br />
<br />
It's a bit hacky in that the gap between numbers is fixed, and I didn't normalize the polygon data, so it's a fixed size of 38x68.  Of course you can scale it, but...<br />
<br />
Well, there it is.  finally off my chest.  And now I have nice 7-segment numbers in the bag of tricks.<br />
<br />
You can guess at the signifance of the number in the picture.<br />

</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Sat, 22 Oct 2011 01:40:53 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:12782</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/a4/3d/51/98/af/SegmentedNumber.scad" length="1984" type="application/octet-stream"/>
        </item>
        <item>
            <title>SuperShapes in OpenScad</title>
            <link>http://www.thingiverse.com/thing:12770</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:12770"><img src="http://thingiverse-production.s3.amazonaws.com/renders/f8/56/e1/ce/c2/fadedwire_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>Continuing the madness...  I was getting laughed at in my Design 101 class, so the only way I thought of to silence the other kids was to come out with my SuperShapes!<br />
<br />
After having done the previous SuperEllipse work, it was just a matter of time before the formulas came knocking at my door wanting to be implemented.<br />
<br />
This thing implements the SuperFormula (muwaaahhhaahaaahaaa)!!<br />
<br />
What the heck is that?  Best thing is to take a look at the pretty pictures at this web site: <a href="http://paulbourke.net/geometry/supershape3d/" target="_blank" rel="nofollow">paulbourke.net/geometry/supershape3d/</a><br />
<br />
If you're really a math nutter, then take a look at the math as well.  It's actually not that complicated.  The complication here is just turning the formula into something that can be dealt with by OpenScad.  In particular, making sure the thing turns out to be 2-manifold, so that you can actually generate .stl files and print the results, therein lies the rub.<br />
<br />
The supershape.scad files contains two rotines of interest:<br />
RenderSuperShape2D() - This takes the definition of a single supershape, and renders the curve of that supershape in 2D, using wireframe.  With this single routine, you can go to the wiki entry for Superfomula (http://en.wikipedia.org/wiki/Superformula) and plug in the various numbers, and see pretty pictures.<br />
<br />
RenderSuperShape() - This takes two supershape definitions (one modulates the other), and renders real pretty pictures.  You can look at the Paul Bourke site to get very interesting parameters to plug into that one.<br />
<br />
Another source of parameters might be POVRay files.<br />
<br />
That's enough for a Friday post I think.<br />
<br />
But wait, there's more...<br />
<br />
You also get the procedural texture mapping checkerboard pattern, thrown in for free.  What is procedural texture mapping?  Well, instead of using a bitmap to represent the different colors (or heights) on an object, you can just call a routine and ask it for the color at a particular position.  No fus, no muss, no arrays to slow you down!  At any rate, it's just a little hidden gem.<br />
<br />
This code is public domain.  I figure having such a nice routine freely available might encourage people to make some very interesting shapes.<br />
<br />
Challenge:  How the heck do you get OpenScad to display in wireframe, and with a fade on the other colors?<br />
<br />
UPDATE: 22102011<br />
Added the tristar.stl file.  This was an experiment in rendering the 2D shapes with faces, and not just wireframes, then using them with CSG operations.  The result is of course a deadly weapon once rendered in hardened steel and sharpened.<br />

</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Fri, 21 Oct 2011 17:18:24 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:12770</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/6e/2b/db/ef/50/supershape.scad" length="5025" type="application/octet-stream"/>
        </item>
        <item>
            <title>SuperEllipse in OpenScad</title>
            <link>http://www.thingiverse.com/thing:12419</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:12419"><img src="http://thingiverse-production.s3.amazonaws.com/renders/4d/9c/a0/8e/ac/superellipse_all_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>donb (http://www.thingiverse.com/donb) sent me a message recently about the SuperFormula (http://en.wikipedia.org/wiki/Superformula) as it reminded him of my other surface/solids work.<br />
<br />
Recognizing the fun challenge, I thought I'd code it up.  But, instead of starting right away with the SuperFormula, I thought I'd start with the SuperEllipse, which is very close, and a step along the way anyway.<br />
<br />
This thing is an implementation of the SuperEllipse formula in OpenScad.<br />
<br />
What good is a SuperEllipse?  Well, it's actually a surface of revolution.  With it you can define the ellipsoid, sphere, cylinder, cube/rectangle, and myriad other funky looking shapes that are somehwere in between these.  It's great because from one formula you get all sorts of things.  Just imagine if this were a primitive in OpenScad, as it is in things like PovRAY.<br />
<br />
At any rate, the basic formulas are there.  The fun thing is, you can render a point cloud if you want.  That is, only the vertices, represented as tiny little spheres.  You can also render as a wireframe.  That's nice because you can see the structure, on the outside and the inside as well.  Lastly, you can render as a polyhedron.  Perhaps the most cool of all is that you could render as all three, at the same time, by just changing the values of some parameters.<br />
<br />
The important file is superellipse.scad.  With this one comes the 'superellipse()' module.  This has parameters you can change to get the different shapes.  Within the code, there is a reference to a page that gives examples with different parameters.  By default, it renders with a radius of [1,1,1].  You can easily use the 'scale()' module to get a different size.<br />
<br />
Although the thing will generate 2-manifold objects, it seems to be extremely expensive to do CSG operations on them.<br />
<br />
<br />
<br />
UPDATE: I added another picture that shows a checkerboard pattern on it.  That's a little bit of "precedural texture", which I haven't actually released as yet, but I thought it looked cool.
</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Tue, 11 Oct 2011 13:07:26 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:12419</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/7c/9e/83/29/90/superellipse.scad" length="2850" type="application/octet-stream"/>
        </item>
        <item>
            <title>Quad Connector</title>
            <link>http://www.thingiverse.com/thing:12263</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:12263"><img src="http://thingiverse-production.s3.amazonaws.com/renders/3b/5b/e3/65/54/quadcorner_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>I am building a torsion box using corrugated plastic panel, and I find that I need a little someting to add rigidity to the joints.<br />
<br />
This thing acts as a 'cap' for each of the joints in such a torsion box.  It can be used without glue, or you can actually glue it in place.<br />
<br />
The .scad has some easy parameters so you can select the gap size, and various lengths of things.  Similarly, you can decide whether you want to have a hole in the middle of the thing, or not.<br />
<br />
This particular project was inspired by a project in my daughter's art class.<br />
<br />
NOTE: test_corners.scad is just for display purposes.  There is nothing printable there really.  It shows how the connector can be used in a torsion box construction.<br />
<br />
GITHUB: <a href="https://github.com/Wiladams/TorsionBox" target="_blank" rel="nofollow">github.com/Wiladams/TorsionBox</a><br />

</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Thu, 06 Oct 2011 21:51:42 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:12263</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/a2/61/20/17/4e/quadcorner.stl" length="61771" type="application/sla"/>
        </item>
        <item>
            <title>OpenScad Height Maps v0.5</title>
            <link>http://www.thingiverse.com/thing:11981</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:11981"><img src="http://thingiverse-production.s3.amazonaws.com/renders/40/f2/40/da/ec/mountain2_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>I needed the ability to quickly generate a tile from a height map.  A height map is essentially a grayscale picture.  If you think of each of the 'pixel' values representing a 'z' value for a vertex in a mesh, then you can imagine applying those z values, and what you get is a mesh transformed into a 'landscape'.<br />
<br />
This thing is just a further refinement of the technique in OpenScad.<br />
<br />
Although I am highlighting the technique by applying it to what looks like a landscape, I've also applied it to font rendering as well.  There are a couple of ways of doing fonts in OpenScad.  One is to use a 'bitmap' and essentially do height mapping, by representing each pixel as a cube.<br />
<br />
Another method is to use the font information, and use the outlines to actually draw polygons and linear_extrude() them.<br />
<br />
Yet a third way is to use a tool to export the font outlines into a .dxf file, and then load from there with a linear_extrude.<br />
<br />
What you can do here is take the font, generate grayscale images of each character, in a format that is essentially OpenScad code.  Then apply those images to a mesh, just like a landscape, and you've got extruded fonts!<br />
<br />
The cool thing about this generalized technique is that you can use it for anything.  The routine gives you absolute control over the size and resolution.  So, for example, using the same basic grayscale image, you can print at 48x48 millimeters, with a resolution of 4 facets per millimeter.  That would be great if you're printing on a machine with .25mm layer resolution.  It would turn out fairly smooth.  On the other hand, if you don't want to wait the hours required for that, you can simply change the resolution to be 1mm/facet, and still get a decent print.<br />
<br />
The pictures here demonstrate the technique being applied to both terrain and characters.  <br />
<br />
There are two routines, which can be found in the MeshRenderer.scad file:<br />
shell_extrude_height_map() - To be used when your height map information is represented by single values.<br />
<br />
shell_extrude_color_map() - To be used when your height map information is still grayscale, but represented by triplets.<br />
<br />
Oh yes, and one of the parameters to this routine: solid=true<br />
That means that while you're prototyping, you can say 'solid=false', and it will simply generate a polygon surface.  Then when you're done playing around, you can say 'solid=true', and you'll get a proper 2-manifold solid that you can then press 'F6' on and go take a walk.<br />
<br />
I know, it's a lot of words, but look at the pretty pictures!!  The 64x64 resolution mountain scene took 5 hours to render.  The 48x48 took about 1.5 hours.<br />
<br />
NOTE: Although I can easily generate single characters using this technique, actually generating them en masse as shown in the picture, has some problems.  The structure ends of not being 2-manifold.  I plan to improve the general text handling aspects later.  But, the basic height mapping technique will remain the same.<br />

</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Wed, 28 Sep 2011 08:56:59 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:11981</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/55/5d/ad/38/9e/glsl.scad" length="1501" type="application/octet-stream"/>
        </item>
        <item>
            <title>Height Mapped Polyhedra in OpenScad</title>
            <link>http://www.thingiverse.com/thing:11914</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:11914"><img src="http://thingiverse-production.s3.amazonaws.com/renders/55/a6/60/3a/f1/checkerbump1_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>I want to do height mapping in OpenScad.  The easiest way to do it is to generate little cubes for each offset.  That's a good start, but I wanted more.  What I really want is the ability to layout a polyhedron mesh use a height map to alter the vertices of that mesh.<br />
<br />
This thing is just the latest incarnation of the library.  With it, you can do the following:<br />
<br />
display_mesh_height([32,32], [2,2], heightmap=checker_image);<br />
<br />
That is, specify a size in millimeters for the mesh [32,32], then a resolution [2,2], and the height map, our checker image.<br />
<br />
The work is actually located in the test_mesh.scad file.  It will do the height, but not do the color.  That will come next.<br />
<br />
Another thing that I'm doing in this incarnation of the library is separating out this thing called glsl.scad  Basically, recognizing that there's a lot of stuff that I'm doing that mirrors what I would be doing in 3D graphics.  A lot of this stuff is like vertex and shader programming, so I figured I'd model it in the same way.  It also makes it easier to go from here (OpenScad) to rendering in something like the iPad.<br />
<br />
Blog entry: <a href="http://williamaadams.wordpress.com/2011/09/25/openscad-texture-mapping-2/" target="_blank" rel="nofollow">williamaadams.wordpress.com/2011/09/25/openscad-texture-mapping-2/</a><br />
<br />
GitHub: <a href="https://github.com/Wiladams/OpenScadModels/tree/master/Libraries" target="_blank" rel="nofollow">github.com/Wiladams/OpenScadModels/tree/master/Libraries</a><br />
<br />
It's a paltry entry, but a nice way to do height maps.  It takes up less resources to display the mesh than to display a bunch of cubes.<br />
<br />
UPDATE:<br />
OK, I got unlazy, and actually included the proper mesh renderer, so you can in fact make solid things from your bump maps.<br />

</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Sun, 25 Sep 2011 23:39:24 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:11914</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/bb/ec/cb/c4/33/glsl.scad" length="994" type="application/octet-stream"/>
        </item>
        <item>
            <title>Texture Mapping in OpenScad!</title>
            <link>http://www.thingiverse.com/thing:11616</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:11616"><img src="http://thingiverse-production.s3.amazonaws.com/renders/84/40/64/50/a7/Imaging1_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>Recently on the OpenScad discussion alias, I was trying to explain how I could do my own lighting calculations if given half a chance.  Altough it's not really a possibility for the current OpenScad renderer, I got to thinking.  Even though I can't print in multiple colors (yet), I can certainly liven up my OpenScad renderings a bit.<br />
<br />
This thing is a set of imaging routines for OpenScad.<br />
<br />
The general principle is fairly straight forward.  First you need an image to be converted to a format that OpenScad can understand.  In the included .zip file, there is such an executable.  Just run:<br />
    ImageConverter.exe imagename > name.scad<br />
<br />
This will generate something that looks like:<br />
imagename_triplets_array = [0,0,0, 1,2,3, 255,255,255];<br />
imagename = image(width, height, imagename_triplets_array)<br />
<br />
There is a new function here: image() which takes parameters necessary to just package up some stuff for later usage in functions.<br />
<br />
The crux of the routines is actually: image_getpixel(img, x,y)<br />
<br />
This will return a color value at that point in the image.  Nice and handy.<br />
<br />
But, when you're using images of varying sizes, you don't use pixel coordinates directly, you use normalized values (between 0..1)<br />
<br />
So, there is another routine: image_gettexel(image, u, v)<br />
<br />
In this case, the 'u' and 'v' values range from 0..1<br />
<br />
That's handy when you're displaying on a bezier surface for example, or a sphere, or anything else that's parametrically defined.  You just need to supply the parametric values, and when you go to draw a particular facet, change the color for that facet, and voila!!  You've got texture mapping.<br />
<br />
Just for kicks, there is a luminance() function.  What good is that?  Well, that allows you to turn an rgb value into a single grayscale value.  If you can do that, then you can't be that far away from having a height map generated out of an image.<br />
<br />
Put it all together and you can take a picture of yourself, convert to OpenScad form, generate a height map, create a mesh that matches the height field (need to do some work for that one), and print out a 3D relief of your face!!  Poor man's scan/print if you will.<br />
<br />
At any rate, it's not complete, and you'll find that you use images of any significant size, your machine will crawl for literally hours.<br />
<br />
But, if you go back and look at the various font libraries, where you're typically generating 'images' that are 16x12 or something small like that, then suddenly life becomes way easy.<br />
<br />
If I were into actually contributing to the codebase of OpenScad, rather than just commenting on it, I would suggest that making the array lookups really fast to enable stuff like this without making the machine crawl, would be a very good investment.<br />
<br />
UPDATE: 21092011<br />
Added blog entry: <a href="http://williamaadams.wordpress.com/2011/09/21/openscad-texture-mapping/" target="_blank" rel="nofollow">williamaadams.wordpress.com/2011/09/21/openscad-texture-mapping/</a><br />

</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Fri, 16 Sep 2011 13:53:41 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:11616</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/b6/6b/27/3c/93/maths.scad" length="22368" type="application/octet-stream"/>
        </item>
        <item>
            <title>Flanged Connector - V2</title>
            <link>http://www.thingiverse.com/thing:11273</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:11273"><img src="http://thingiverse-production.s3.amazonaws.com/renders/4f/2e/a6/46/43/tetratube_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>The original was a good start, and good for a moldable form.  <br />
<br />
This thing represents some simple modifications to the original design to make it more easily printable.  There are two primary changes.<br />
<br />
1) There is now a central hub that is a cylinder instead of a sphere.  This looks interesting, and serves to give a nice anchor point to the design.<br />
<br />
2) The part that connects the flanges to the central part is now the same diameter as the widest part of the flange.  That eliminates the largest 'overhang' part when printing on its 'side'<br />
<br />
Other than that, the attached .stl files are for tubing that has a 5/16" inner diameter.  It works great with vinyl tubing of that size.  Wouldn't it be funny if someone filled those tubes with a hardening epoxy after connecting it into an interesting shape?<br />
<br />
UPDATE: 07092011<br />
Added a couple more pictures where the hubs are used as semi-rigid joints with vinyl tubing and wood dowels.<br />

</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Tue, 06 Sep 2011 23:36:46 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:11273</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/5b/73/63/4c/0c/flanged_3_516.stl" length="459337" type="application/sla"/>
        </item>
        <item>
            <title>Flanged Connector</title>
            <link>http://www.thingiverse.com/thing:11255</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:11255"><img src="http://thingiverse-rerender.s3.amazonaws.com/renders/5b/d2/b7/56/dd/flanged_3_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>Way back in the day, my daughter and I wanted to build some simple structures using drinking straws.  The typical method was to shove some paperclips into the ends, hook the paper clips together, and bit by bit assemble the structure.  It was very hard, and until the whole structure was assembled, it remained frustratingly limp.  I wanted a better way, and dreamed of having some tiny connectors that I could simply stick in the end of the straws and easily connect them.  Then I got into ZomeTool and forget about the idea.  Recently while cleaning out the house, I found the bundle of 1,000 straws I had purchased back then, which rekindled the spark of an idea I had back then.  Now, armed with OpenScad skills, and a 3D printer...<br />
<br />
This thing is finally that basic connector.  But, it goes a bit beyond what I originally intended.  These connectors are hollow, so you can actually use them to string bits and pieces of tubing together, and get liquid to flow between them.<br />
<br />
This is very similar to the type of connector found in drip irrigation systems, like the ones found at Home Depot.  They are called "barbed connector" there.  You could probably also make the "speared" kind to dig into the thicker pipes.<br />
<br />
Since these cost about $0.05 to print, and the store bought ones are more like $5, you might realize some amount of savings, if you're into creating these things.<br />
<br />
I use straight angles here, so if you really were trying to form some structures, you might want to do the extra math to deal with angular defect.  Or you could look at the library here: <a href="http://www.thingiverse.com/thing:9560" target="_blank" rel="nofollow">thingiverse.com/thing:9560</a> and dig out some of the math.<br />
<br />
The .stl files here are meant to fit within the 6.25mm inner diameter drinking straws that I have here at home.  You can simply change the OD value at the top of the file to mate with whatever 'tubing' you so happen to have.  It will work great with vinyl tubing.  A little dab of glue, and a tight fit, will make for a nice tight permanent structure.<br />
<br />
Another fun thing might be to run some elwire through the tubes for a fancy display.  Who knows.  The possibilities are endless!<br />
<br />
The OpenScad is included so you can make your own.  For the elbows, just specify an angle.  For the others, just specify how many connectors you want.<br />
<br />
UPDATE: 05092011<br />
Added blog entry here: <a href="http://williamaadams.wordpress.com/2011/09/05/useful-household-items-drip-irrigation-connectors/" target="_blank" rel="nofollow">williamaadams.wordpress.com/2011/09/05/useful-household-items-drip-irrigation-connectors/</a><br />

</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Mon, 05 Sep 2011 17:41:23 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:11255</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/f7/03/b1/d8/3d/flanged_connector.scad" length="1934" type="application/octet-stream"/>
        </item>
        <item>
            <title>Platonic Solids for OpenScad - v0.7</title>
            <link>http://www.thingiverse.com/thing:11224</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:11224"><img src="http://thingiverse-rerender.s3.amazonaws.com/renders/c5/30/d7/54/db/dualdodeca_difference_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>After losing some hair over the issue, and with some help from Marius Kintel, I was finally enlightened as to why my dodecahedron was not coming out properly.<br />
<br />
This thing represents some forms of the dodecahedron.  In particular, it is combinations of the dual forms (dodecahedron/icosahedron).  The .stl files are printed with a radius of 20mm, but you can change that to whatever you want either in the OpenScad, or by scaling.<br />
<br />
The 'difference' form is probably the most interesting.  It makes for a fairly decent calibration piece.  It has some nicely sloping overhangs, bridges, and flat spots.  I makes for some good tuning between ABS and PLA as well.<br />
<br />
The challenge with the dodecahedron had to do with OpenScad not being happy with the pentagons I was trying to print.  They had to be broken down into triangles, which Marius conveniently did for me.<br />

</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Sun, 04 Sep 2011 10:41:23 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:11224</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/40/5a/90/eb/21/test_platonic.scad" length="12404" type="application/octet-stream"/>
        </item>
        <item>
            <title>Platonic Solids for OpenScad - v0.5</title>
            <link>http://www.thingiverse.com/thing:11071</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:11071"><img src="http://thingiverse-rerender.s3.amazonaws.com/renders/11/7a/22/3d/c4/wireframe_dodeca_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>In order to bake an apple pie...<br />
<br />
I really am doing geodesic domes, but there's a long road I have to walk in order to get there.<br />
<br />
This thing is the next incarnation of the geodesic library.<br />
<br />
Being able to calculate strut lengths is one thing, and definitely a required step along the way to constructing geodesic domes.  In fact, if you're just constructing them in the real world, the previous version of this library is enough, because you can calculate strut lengths and be on your merry way.  But, if you what you're after is the ability to actually model the things and print them out, then you need a little bit more capabilities.<br />
<br />
I found that I not only needed the list of vertices for a particular platonic solid, but I also needed edge lists.  That is, a list of vertices that form edges.  So, that's what's in this library.  Otherwise, no dramatic changes.<br />
<br />
I did add a polygon wireframe rendering module which takes the edge lists and renders a nice wireframe of the polyhedron in question.  You can specify the radius of the 'wires'.  I was toying with being able to render as flat faces as well, but that requires a lot more work than the simple approach I started out with (I am using my table saw to help me figure it out).<br />
<br />
Since it's .scad files, you can alter them to suit your needs.<br />
<br />
Based on several suggestions, I will likely stop using Thingiverse as my 'source repository', and put sources up on GitHub so they're more easily maintained.  Then I can just drop model turds here when there's something interesting generated from the core libraries.<br />

</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Sat, 27 Aug 2011 10:03:30 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:11071</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/a2/e0/9f/0e/bc/test_platonic.scad" length="6914" type="application/octet-stream"/>
        </item>
        <item>
            <title>Platonic Solids for OpenScad - v0.2</title>
            <link>http://www.thingiverse.com/thing:10725</link>
            <description><![CDATA[<div style="margin: 5px;"><a href="http://www.thingiverse.com/thing:10725"><img src="http://thingiverse-rerender.s3.amazonaws.com/renders/6b/3f/0e/79/8a/dualcube1_preview_large.jpg" alt="" class="render" style="width: 240px; height: 180px" /></a><br/></div><div>A funny thing happened on the way to developing geodesic stuff.  I found that I needed to fully develop some Platonic solids.  And since I needed to develop 3 of them, I figured I'd develop them all.<br />
<br />
This thing represents the latest incarnation of the maths_geodesic library, plus extras.<br />
<br />
First of all, the original maths_geodesic.scad library had a small bug in the 'clean' function which prevented it from properly converting spherical coordinates.<br />
<br />
There are a few additions:<br />
DEGREES() - Already exists in other libraries, convert from radians to degrees<br />
RADIANS() - Already exists in other libraries, converst from degrees to radians<br />
<br />
deg(deg,min,sec) - Creates a data structure that holds degrees, minutes, seconds<br />
deg_to_dec(d) - converts from that degrees data structure to decimal form<br />
<br />
These will come in handy some time when more spherical and geographic things start to show up.<br />
<br />
sphu_from_cart(c, rad=1) - Does the same thing as sph_from_cart, but allows you to specify the radius.  This is quite handy when you're converting from some cartesian coordinates, and you want to make something with a fixed radius.<br />
<br />
then there's some things related to polygon math.  Figuring out internal angles, and the like.  Perhaps the most interesting is figuring out the dihedral angle for a platonic.  That comes in handy for some calculations.<br />
<br />
But, the really new stuff is the set of thing related directly to Platonic solids in the file 'platonic.scad'.<br />
<br />
First of all, the 5 platonic solids are represented by functions that represent their geometry/topology, in a form suitable for rendering with the polyhedron() module.<br />
<br />
So:<br />
tetrahedron(rad=1)<br />
octahedron(rad=1)<br />
hexahedron(rad=1)<br />
dodecahedron(rad=1)<br />
icosahedron(rad=1)<br />
<br />
You can use it like this:<br />
<br />
display_polyhedron(icosahedron(20));<br />
<br />
That will render a icosahedron centered at [0,0,0], with a radius of 20.<br />
<br />
Being able to set the radius is really handy as you can do things like nest them, or simply create them to the size you need.  The fact that they're centered on the origin makes it fairly easy to rotate them around, to whatever orientation you like.<br />
<br />
The .stl files here just show some casual renderings that can be generated with the test_platonic.scad file.  Doing truncations and stellations is fairly straight forward. Even doing hollowed out forms, particularly with duals, is fairly straightforward as well.<br />
<br />
The only thing that's not here is using the inradius, circumradius, and midradius for doing proper alignment of duals.  But, how hard could it be?<br />
<br />
At any rate, OpenScad now has a tidy little set of Platonic solids to play with.<br />
<br />
UPDATE: 19082011<br />
I have added some .stl files that are renderings of the various solids.  The Dodecahedron is actually having a problem in OpenScad.  I will debug that one and upload it when it actually works.  A very strange bug.<br />
<br />
UPDATE: 03092011<br />
Replaced the platonics.stl, with platonic_set.stl.  I have a better dodecahedron now.
</div>]]></description>
            <author>WilliamAAdams</author>
            <pubDate>Sun, 14 Aug 2011 12:15:04 +0100</pubDate>
            <guid>http://www.thingiverse.com/thing:10725</guid>
            <enclosure url="http://thingiverse-production.s3.amazonaws.com/assets/ef/69/77/cd/4e/maths_geodesic.scad" length="5028" type="application/octet-stream"/>
        </item>
    </channel>
</rss>
