<body>
+<!-- <header>
+ <span class="title">← <a href="{{ site.baseurl }}">{{ site.name }}</a></span>
+ </header> -->
+
<div class="site">
{{ content }}
</div>
- <div class="sidebar">
- <div class="header">
- <span class="title">← <a href="{{ site.baseurl }}">{{ site.name }}</a></span>
- </div>
+<!-- <nav class="sidebar">
+ <strong class="title"><a href="{{ site.baseurl }}">{{ site.name }}</a></strong>
+ <ul class="posts">
+ {% for post in site.posts %}
+ <li><a href="{{ site.baseurl }}{{ post.url }}">{{ post.title }}</a></li>
+ {% endfor %}
+ </ul>
+ </nav> -->
+
+ <div class="footer">
+ <p class="meta">
+ © {{ site.time | date: "%Y" }} {{ site.author }}
+ <a href="{{site.author_url}}">www</a>, <a href="mailto:{{site.author_email}}">email</a>
+ </p>
</div>
-
+
<script src="{{ site.baseurl }}/js/script.js"></script>
</body>
---
layout: default
---
+
+<div class="nav">← <a href="{{ site.baseurl }}">{{ site.name }}</a></div>
+
<h1>{{ page.title }}</h1>
<p class="meta">
-{{ page.date | date: "%Y/%m/%d" }} <br />
-{{ site.author }}
+{{ page.date | date: "%Y/%m/%d" }}
</p>
<div class="post">
## Abstract
-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.
+A proof-of-concept collection of patches that shares polygon mesh geometry from Grasshopper to TouchDesigner in 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)
- [GhPython](http://www.food4rhino.com/project/ghpython)
- [TouchDesigner](https://www.derivative.ca/)
+
### Screenshots
#### Rhino/Grasshopper
---
layout: post
-title: "Tetra Field"
+title: "Tetra Field: In Depth Making Of"
date: 2014-04-24
categories: articles
author: Gabriel Dunne
-# Design
+## Design
Geometry was created in Grasshopper via the LunchBox toolkit.
Grasshopper process.
-# Fabrication Process
+## Fabrication Process
![Lasering](https://farm4.staticflickr.com/3698/10585763365_b0047bf023_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
+## 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
+## Projection Mapping
[touch designer graphics page/screenshot]
---
layout: post
-title: "Arbitrary Mitre Angles for Wood"
+title: "Mitre Solution for Wooden Geometry"
date: 2014-04-24
categories: articles
author: Gabriel Dunne
h1 {
margin:1em 0;
font-size:2.8em;
- padding-bottom:0.1em;
+ padding-bottom:0.25em;
text-align:center;
font-family:lettergothic;
border-bottom:1px solid #aaa;
p { text-align:left; }
+header {
+ margin-bottom:2em;
+ position:absolute;
+ top: 2em;
+ left: 1em;
+}
+
+
/*****************************************************************************/
/*
/* sidebar */
.sidebar {
- position:fixed;
+ position:absolute;
top:2em;
left:1em;
text-align:left;
.site {
margin: 2em auto 2em auto;
- padding: 0 6em;
+ padding: 0 5em;
max-width: 800px;
line-height: 1.5em;
}
-.header {
- margin-bottom:2em;
-}
-.header a {
- font-weight: bold;
- text-decoration: none;
-}
.title {
display: inline-block;
}
.footer {
+ text-align:center;
color: #999;
margin-top: 2em;
}
-.footer .contact {
- float: left;
- margin-right: 3em;
-}
-
-.footer .contact a {
- color: #8085C1;
-}
-
-.footer .rss {
- margin-top: 1.1em;
- margin-right: -.2em;
- float: right;
-}
-
-.footer .rss img {
- border: 0;
-}
-
/*****************************************************************************/
/*
/* Posts
<div id="home">
+ <h1>{{site.name}}</h1>
+
<ul class="posts">
{% for post in site.posts %}
<li>