From: Gabriel Dunne Date: Wed, 30 Apr 2014 00:00:59 +0000 (-0700) Subject: Organizing and styling. X-Git-Url: https://git.quilime.com/?a=commitdiff_plain;h=7c5cd1ab02881aeb8d805590f0a37c7244b48090;p=notes.git Organizing and styling. --- diff --git a/_config.yml b/_config.yml index aea8c54..e3cbc10 100644 --- a/_config.yml +++ b/_config.yml @@ -1,6 +1,9 @@ -name : process notes +name : notes +author: Gabriel Dunne +author_url : http://gabrieldunne.com +author_email : gabe@gabrieldunne.com markdown : redcarpet pygments : true -permalink : /:month-:day-:year/:title.html +permalink : /:title.html baseurl : /process exclude: [ publish.sh ] \ No newline at end of file diff --git a/_layouts/default.html b/_layouts/default.html index 84a81e4..a782cc8 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -5,32 +5,24 @@ {{ page.title }} - - - - - +
+ {{ content }} +
+ + diff --git a/_layouts/post.html b/_layouts/post.html index 62d3293..8b85161 100644 --- a/_layouts/post.html +++ b/_layouts/post.html @@ -1,9 +1,12 @@ --- layout: default --- -

{{ page.title }}

+

{{ page.title }}

-

{{ page.date | date_to_string }}, by {{ page.author }}

+

+{{ page.date | date: "%Y/%m/%d" }}
+{{ site.author }} +

{{ content }} diff --git a/_posts/2014-04-23-gh-td.markdown b/_posts/2014-04-23-gh-td.markdown index 8328d3f..77bba62 100644 --- a/_posts/2014-04-23-gh-td.markdown +++ b/_posts/2014-04-23-gh-td.markdown @@ -3,30 +3,26 @@ layout: post title: "Grasshopper -> TouchDesigner Bridge" date: 2014-04-23 categories: articles -author : Gabriel Dunne --- -by Gabriel Dunne - ## Abstract -A proof-of-concept patch that sends polygon mesh geometry from Grasshopper to TouchDesigner realtime via OSC. - -## Software -[Rhino3D](http://rhino3d.com) -[Grasshopper3D](http://www.grasshopper3d.com/) -[TouchDesigner](https://www.derivative.ca/) - -## Grasshopper Plugins -[gHowl](http://www.grasshopper3d.com/group/ghowl) -[GhPython](http://www.food4rhino.com/project/ghpython) - - +A proof-of-concept patch that sends polygon mesh geometry from Grasshopper to TouchDesigner realtime via OSC. The ability to share mesh data between Grasshopper and TouchDesigner allows for a streamlined workflow when projection-mapping geometry. It eliminates a mesh export/import step, and doesn't rely on TouchDesigner's mesh editing tools. It streamlines the process of fabricating objects, as it closely links the fabrication process of the form to the projection mapping process. Grasshopper, a parametric geometry environment, allows for great control over the verticies, planes, and normals of a 3D mesh, which gets sent to the TouchDesigner graphics environment. Any changes to a mesh done in Grasshopper translates to TouchDesigner in real time. This is a proof of concept and unoptomized for large meshes. +### Software +- [Rhino3D](http://rhino3d.com) +- [Grasshopper3D](http://www.grasshopper3d.com/) + - [gHowl](http://www.grasshopper3d.com/group/ghowl) + - [GhPython](http://www.food4rhino.com/project/ghpython) +- [TouchDesigner](https://www.derivative.ca/) -The ability to share mesh data between Grasshopper and TouchDesigner allows for a streamlined workflow when projection-mapping geometry. It reduces the amount of mesh import/exporting, and doesn't rely on TouchDesigner for mesh editing, which is where Grasshopper excels. Additionally, it streamlines the process of fabricating objects, as it closely links the fabrication process of the form to the projection mapping process. Grasshopper, a parametric geometry environment, allows for great control over the verticies, planes, and normals of a 3D mesh, which gets sent to the TouchDesigner graphics environment via OSC. Any changes to a mesh done in Grasshopper will translate to TouchDesigner in real time. This is a proof of concept and unoptomized for large meshes. +### Screenshots +#### Rhino/Grasshopper +![](https://raw.githubusercontent.com/quilime/gh-td/master/screenshots/sender_gh.PNG) -TODO: [ screenshot ] +#### TouchDesigner +![](https://raw.githubusercontent.com/quilime/gh-td/master/screenshots/receive_01.PNG) -TODO: [ tutorial ] +### Source +[https://github.com/quilime/gh-td](https://github.com/quilime/gh-td) diff --git a/_posts/2014-04-24-generativeforms-projectionmapping.markdown b/_posts/2014-04-24-generativeforms-projectionmapping.markdown deleted file mode 100644 index 7bcb472..0000000 --- a/_posts/2014-04-24-generativeforms-projectionmapping.markdown +++ /dev/null @@ -1,72 +0,0 @@ ---- -layout: post -title: "Projection Mapping Generative Forms with Grasshopper and TouchDesigner" -date: 2014-04-24 -categories: articles -author: Gabriel Dunne ---- - -![Finished](https://farm6.staticflickr.com/5505/11228006956_0a33de14b9_c.jpg) - -This article is a documentation of a process for making generative geometric forms for use in projection mapping. - -# Requirements - -## Software -- [Rhino3D](http://rhino3d.com) -- [Grasshopper3D](http://www.grasshopper3d.com/) - - [gHowl](http://www.grasshopper3d.com/group/ghowl) - - [GhPython](http://www.food4rhino.com/project/ghpython) -- [TouchDesigner](https://www.derivative.ca/) - -## Hardware -- Digital Projector -- Windows PC with TouchDesigner supported videocard. - -## Fabrication Tools -- Laser Cutter - -## Materials -- 10mm Plywood Stock -- Cyanoacrylate Super Glue -- Neodynimum Magnets -- Angle Brackets -- Gap-filling paint/primer - -I arrived at this design during an experiment on rapid fabrication closely linked with the process of projection-mapping. It consists of a series of projection-mapped truncated tetrahedrons made out of 10mm plywood. They vary in size, orientation, and all have an arbirary boolean intersection with a vertical plane, allowing them all have unique placements on the wall. Rhino/Grasshopper was used to generate the geometry, and TouchDesigner was used for the projection graphics. The polygon mesh information used for projections are received by TouchDesigner from Grasshopper via my [Grasshopper -> TouchDesigner Bridge]({% post_url 2014-04-23-gh-td %}). - -This iteration does not include a solution mitered corners, due to the physical tendancies of the laser cutter, which simplifies the fabrication process considerably. My current process is designing a precise, repeatable solution for generating mitres when fabricating polygonal shapes. - -# Design - -The geometry was created in Grasshopper. - -[grasshopper patch/screenshot] - -Grasshopper process. - -# Fabrication Process - -![Lasering](https://farm4.staticflickr.com/3698/10585763365_b0047bf023_c.jpg) - -Forms were cut with a LaserSaur laser cutter from sheets of lightweight, low-grade 10mm ply. - -![Gluing](https://farm8.staticflickr.com/7308/10585766255_f3b95369ae_c.jpg) - -Panels are superglued together by hand. The interior support structure relies on two angle wedges, which are superglued to the interior of the forms. - -![Painting](https://farm8.staticflickr.com/7430/10585792186_6a42ecb673_c.jpg) - -After the glue dries (very I gave them multiple coats of white primer and gap filler. - -# Installation - -Ultra strong neodynium magnets were used as a mounting solution. I tried the methods of inserting large-headed nails or screws into the wall, or simply gaff-taping an opposing magnet. The gaff-tape method was a temporary, but works. - -[magnet shot] - -# Projection Mapping - -[touch designer graphics page/screenshot] - - diff --git a/_posts/2014-04-24-tetra-field.markdown b/_posts/2014-04-24-tetra-field.markdown new file mode 100644 index 0000000..071c673 --- /dev/null +++ b/_posts/2014-04-24-tetra-field.markdown @@ -0,0 +1,88 @@ +--- +layout: post +title: "Tetra Field" +date: 2014-04-24 +categories: articles +author: Gabriel Dunne +--- + +![Finished](https://farm6.staticflickr.com/5505/11228006956_0a33de14b9_c.jpg) + +*Tetra Field* +Gabriel Dunne +2014 +plywood, projector, touchdesigner, grasshopper + + +## Introduction + +*Tetra Field* consists of a series of projection-mapped truncated tetrahedrons laser-cut from 10mm bitch ply. They vary in size, orientation, truncation, and all have an arbirary boolean intersection with a vertical plane, resulting in each having unique placement on the wall. + +I arrived at this design during an experiment on rapid fabrication closely linked with the process of projection-mapping. + +Rhino/Grasshopper was used to generate the geometry, and TouchDesigner was used for the projection graphics. The polygon mesh information from Grasshopper is shared by TouchDesigner from via my [Grasshopper -> TouchDesigner Bridge]({% post_url 2014-04-23-gh-td %}). This allows the fabrication process of the object, and and the projection graphics to be highly linked and related. + +Further Software Iterations: This project did not solve the problem of aligning the projector to the sculptures. For this project, projecting and capturing GrayCode patterns would have been the most reliable method, but the shape of the objects was so simple, I mounted them on the wall, and knowing the projector distance, I oriented the graphics manually. For future iterations, I want to experiment with embedded fiber-optics in verticies that would be tracked with an IR camera for a precise, real-time alignment. A huge challenge involved in projection mapping objects is the sheer amount of time it takes to align projections, and creating a real-time mapping solution allows for articulated and or moving installations. + +Future Fabrication Iterations: This iteration does not include a solution mitered corners, due to the physical tendancies of the laser cutter, which simplifies the fabrication process considerably. My current process is designing a precise, repeatable solution for generating mitres when fabricating polygonal shapes. However, the lack of mitres in this design reveals a perfect channel between faces that highlights the polygon edge. + +## Materials + +### Software +- [Rhino3D](http://rhino3d.com) +- [Grasshopper3D](http://www.grasshopper3d.com/) + - [gHowl](http://www.grasshopper3d.com/group/ghowl) + - [GhPython](http://www.food4rhino.com/project/ghpython) +- [TouchDesigner](https://www.derivative.ca/) + +### Hardware +- DLP or LCD Projector +- Windows PC with TouchDesigner-supported videocard (NVidia). + +### Fabrication Tools +- Laser Cutter + +### Material List +- 10mm Plywood Stock trimmed to fit laser bed +- Cyanoacrylate Super Glue +- Neodynimum Magnets +- Angle Brackets +- Gap-filling paint/primer +- silicon caulk +- gaffers tape + + + +# Design + +Geometry was created in Grasshopper via the LunchBox toolkit. + +[grasshopper patch/screenshot] + +Grasshopper process. + +# Fabrication Process + +![Lasering](https://farm4.staticflickr.com/3698/10585763365_b0047bf023_c.jpg) + +Forms were cut with a LaserSaur laser cutter from sheets of lightweight, low-grade 10mm ply. + +![Gluing](https://farm8.staticflickr.com/7308/10585766255_f3b95369ae_c.jpg) + +Panels are superglued together by hand. The interior support structure relies on two angle wedges, which are superglued to the interior of the forms. + +![Painting](https://farm8.staticflickr.com/7430/10585792186_6a42ecb673_c.jpg) + +After the glue dries (very I gave them multiple coats of white primer and gap filler. The brazing of the laser on the plywood is a tough surface to paint completely white, and required multiple coats. + +# Installation + +Ultra strong neodynium magnets were used as a mounting solution. I tried the methods of inserting large-headed nails or screws into the wall, or simply gaff-taping an opposing magnet. The gaff-tape method was a temporary, but works. + +[magnet shot] + +# Projection Mapping + +[touch designer graphics page/screenshot] + + diff --git a/_posts/2014-04-24-woodmitres.markdown b/_posts/2014-04-24-woodmitres.markdown index 5ba55ac..35d9cac 100644 --- a/_posts/2014-04-24-woodmitres.markdown +++ b/_posts/2014-04-24-woodmitres.markdown @@ -1,12 +1,12 @@ --- layout: post -title: "Creating Arbitrary Mitre Angles in Wood Panels" +title: "Arbitrary Mitre Angles for Wood" date: 2014-04-24 categories: articles author: Gabriel Dunne --- -# Truncated Tetrahedron Stool/Table +## Truncated Tetrahedron Stool/Table I'm continuing my interations with the Tetrahedron model. I like using it for experiments because of it's a very basic "root" shape. This article will cover the creation of a truncated tetrahedron shape out of 3/4" material, with mitred joins. @@ -87,7 +87,7 @@ Tetrahedron! -# Truncation +## Truncation Now, we need to truncate our shape. @@ -156,7 +156,7 @@ Then, I make trace all the edges, do 3pt orients, and align them to the cutting -# Creating Thickness +## Creating Thickness We need to: 1. Offset mesh by .75 @@ -168,7 +168,7 @@ you only need to do this for each individual piece, and then duplicate them. -# Measuring the Mitre Angles +## Measuring the Mitre Angles We need to draw some guidlines for measuring perpendicular to the edge of the face. @@ -224,7 +224,8 @@ We have one more special angle to cut, for the parts of the form that rest on th We're done cutting! -# Assembly + +## Assembly We'll work upside down, and build the form up. Place the top of the form upside down on the worksurface diff --git a/css/letter_gothic.ttf b/css/letter_gothic.ttf new file mode 100755 index 0000000..75b31b1 Binary files /dev/null and b/css/letter_gothic.ttf differ diff --git a/css/main.css b/css/main.css index 8545e06..5217ea4 100755 --- a/css/main.css +++ b/css/main.css @@ -10,37 +10,70 @@ padding: 0; } +@font-face +{ + font-family: lettergothic; + src: url(letter_gothic.ttf); +} + html, body { height: 100%; } body { - background-color: #FFF; - font: 14px sans-serif; + background-color: #eee; + font: 12px menlo, "andale mono", monospace, sans-serif; } -h1, h2, h3, h4, h5, h6 { +h1,h2,h3, h4, h5, h6 { font-size: 1em; + color:#000; + line-height:1em; + font-weight:bold; + margin: 1em 0; +} +h1 { + margin:1em 0; + font-size:2.8em; + padding-bottom:0.1em; + text-align:center; + font-family:lettergothic; + border-bottom:1px solid #aaa; +} +h2, h3 { + text-align:center; + margin:3em 0 2em 0; + font-size:1em; + text-decoration:underline; +} +h3 { + text-align:left; + margin:1.5em 0 0.5em; } -h1 { margin: 2em 0; } -h2 { margin-top:1em; } p { margin: 1em 0; } a { color: #00a; } a:hover { color: #000; } a:visited { color: #a0a; } +blockquote { padding:1em; font-style:italic; } + +p { text-align:left; } + + /*****************************************************************************/ /* /* Home /* /*****************************************************************************/ .posts { + margin:0; + padding:0; list-style-type: none; margin-bottom: 2em; } .posts li { - line-height: 1.75em; + padding-bottom: .2em; } .posts span { @@ -48,6 +81,18 @@ a:visited { color: #a0a; } font-family: Monaco, "Courier New", monospace; } +/* sidebar */ +.sidebar { + position:fixed; + top:2em; + left:1em; + text-align:left; +} +.sidebar .meta { + text-align:left; +} + + /*****************************************************************************/ /* /* Site @@ -55,8 +100,9 @@ a:visited { color: #a0a; } /*****************************************************************************/ .site { - margin: 2em 8em 2em 2em; - max-width:800px; + margin: 2em auto 2em auto; + padding: 0 6em; + max-width: 800px; line-height: 1.5em; } @@ -93,6 +139,7 @@ a:visited { color: #a0a; } .meta { color: #aaa; + text-align:center; } .footer { @@ -148,6 +195,8 @@ a:visited { color: #a0a; } border: none; } +.post img { max-width:800px; } + /* terminal */ .post pre.terminal { border: 1px solid #000; diff --git a/index.html b/index.html index 43b8fb0..6d860a9 100644 --- a/index.html +++ b/index.html @@ -8,11 +8,11 @@ title: notes - +
diff --git a/publish.sh b/publish.sh index 12091a3..138a90b 100755 --- a/publish.sh +++ b/publish.sh @@ -2,4 +2,5 @@ jekyll build +ssh quilime@quilime.com 'rm -rf /home/quilime/gabrieldunne-site/process' rsync -avz _site/ quilime@quilime.com:/home/quilime/gabrieldunne-site/process/ --delete