Using a blend of both colours imported from the scan and colours generated in Processing. This helps give a bit more definition to the shape.

starting with a simple cube (32 faces on each side), then applying fractal subdivision, smooth, scale, twist, colour and contrast algorithms. 

nice glitch, I subdivided the mesh, then moved it, but only the original vertices were selected so that it pulled these upwards forming spikes, top and bottom.

combined with Catmull-Clark subdivision (built into Hemesh), you get these faint circular patterns appearing in the dapple.

combined with Catmull-Clark subdivision (built into Hemesh), you get these faint circular patterns appearing in the dapple.

i tend to forget I’ve got this custom system that can make weird looking objects in just a few clicks.

i tend to forget I’ve got this custom system that can make weird looking objects in just a few clicks.

photogrammetry (3D scan) to Processing/ he_mesh.

photogrammetry (3D scan) to Processing/ he_mesh.

personal coding milestone achieved - importing colour data into Hemesh + Processing!!! Thanks Corneel Cannaerts for his HEC_FromObjFile class that I’ve hacked, and then for fixing my hack over an email to correctly lerp vertex colour to face colour. So to get from 3D scan to this you must:
1. Export 123D scan as obj file with texture.
2. Open in meshlab, do the texture color -> vertex color. Save as .obj 
3. Copy the HEC_FromObjFile into a .pde tab, change class name.
4. When it reads iterates through vertices getting parts 1,2,3 (x,y,z) tell it to also get parts 4,5,6 (rgb for vertex). Save that into an Arraylist of colors
5. Extend HE_Mesh class to store face color, iterate through faces, get face vertices, match vertex with colour data from your Arraylist. Lerp the 3 vertex colours to produce one face colour. Mesh.display()
6. Go to tumblr, let others know.

personal coding milestone achieved - importing colour data into Hemesh + Processing!!! Thanks Corneel Cannaerts for his HEC_FromObjFile class that I’ve hacked, and then for fixing my hack over an email to correctly lerp vertex colour to face colour. So to get from 3D scan to this you must:

1. Export 123D scan as obj file with texture.

2. Open in meshlab, do the texture color -> vertex color. Save as .obj 

3. Copy the HEC_FromObjFile into a .pde tab, change class name.

4. When it reads iterates through vertices getting parts 1,2,3 (x,y,z) tell it to also get parts 4,5,6 (rgb for vertex). Save that into an Arraylist of colors

5. Extend HE_Mesh class to store face color, iterate through faces, get face vertices, match vertex with colour data from your Arraylist. Lerp the 3 vertex colours to produce one face colour. Mesh.display()

6. Go to tumblr, let others know.

Simple effect but took a lot of work, almost 3 hours. Its like a slice but then new faces are created and added between the two mesh halves, finally the mesh has to be rebuilt so that the faces are glued together. From here I can hopefully do some interesting multiple offsets.

Someone requested by email the Processing code for importing STL files to HE_Mesh, apparently its not on the web, so here is mine, download the zip from here. I’ve formatted it to look like a typical HE_Mesh tutorial. Also find it copied below. 
import wblut.math.*;
import wblut.processing.*;
import wblut.core.*;
import wblut.*;
import wblut.hemesh.*;
import wblut.geom.*;
// Toxiclibs for the import stl and save color stl
import toxi.geom.*;
import toxi.geom.mesh.*;
import toxi.math.*;
import toxi.processing.*;


String stlFilename = "yourSTLfilename.stl";
HE_Mesh mesh;
WB_Render render;

void setup() {
  size(800,800, P3D);
  mesh = new HE_Mesh(fromStl(stlFilename));
  render=new WB_Render(this); 
}

void draw(){
  background(230);
  directionalLight(255, 255, 255, 1, 1, -1);
  directionalLight(127, 127, 127, -1, -1, 1);
  translate(400, 400, 0);
  scale(2,2,2);
  rotateY(mouseX*1.0f/width*TWO_PI);
  rotateX(mouseY*1.0f/height*TWO_PI);
  stroke(0);
  render.drawEdges(mesh);
  noStroke();
  render.drawFaces(mesh); 
}



HEC_FromFacelist fromStl(String stlName) { 
  println("Start Build");
  WETriangleMesh wemesh = (WETriangleMesh) new STLReader().loadBinary(sketchPath(stlName), STLReader.WEMESH);
  //convert toxi mesh to a hemesh. Thanks to wblut for personally coding this part during #GX30
  int n=wemesh.getVertices().size();
  ArrayList<WB_Point3d> points=new ArrayList<WB_Point3d>(n);
  for (Vec3D v : wemesh.getVertices()) { 
      points.add(new WB_Point3d(v.x,v.y,v.z));
  }
  int[] toxiFaces=wemesh.getFacesAsArray();
  int nf=toxiFaces.length/3;
  int[][] faces=new int[nf][3];
  for(int i=0;i<nf;i++){
   faces[i][0]=toxiFaces[i*3];
   faces[i][1]=toxiFaces[i*3+1];
   faces[i][2]=toxiFaces[i*3+2]; 
  }
  HEC_FromFacelist ff=new HEC_FromFacelist().setVertices(points).setFaces(faces);
  return ff;
}

Someone requested by email the Processing code for importing STL files to HE_Mesh, apparently its not on the web, so here is mine, download the zip from here. I’ve formatted it to look like a typical HE_Mesh tutorial. Also find it copied below. 

import wblut.math.*;
import wblut.processing.*;
import wblut.core.*;
import wblut.*;
import wblut.hemesh.*;
import wblut.geom.*;
// Toxiclibs for the import stl and save color stl
import toxi.geom.*;
import toxi.geom.mesh.*;
import toxi.math.*;
import toxi.processing.*;


String stlFilename = "yourSTLfilename.stl";
HE_Mesh mesh;
WB_Render render;

void setup() {
  size(800,800, P3D);
  mesh = new HE_Mesh(fromStl(stlFilename));
  render=new WB_Render(this); 
}

void draw(){
  background(230);
  directionalLight(255, 255, 255, 1, 1, -1);
  directionalLight(127, 127, 127, -1, -1, 1);
  translate(400, 400, 0);
  scale(2,2,2);
  rotateY(mouseX*1.0f/width*TWO_PI);
  rotateX(mouseY*1.0f/height*TWO_PI);
  stroke(0);
  render.drawEdges(mesh);
  noStroke();
  render.drawFaces(mesh); 
}



HEC_FromFacelist fromStl(String stlName) { 
  println("Start Build");
  WETriangleMesh wemesh = (WETriangleMesh) new STLReader().loadBinary(sketchPath(stlName), STLReader.WEMESH);
  //convert toxi mesh to a hemesh. Thanks to wblut for personally coding this part during #GX30
  int n=wemesh.getVertices().size();
  ArrayList<WB_Point3d> points=new ArrayList<WB_Point3d>(n);
  for (Vec3D v : wemesh.getVertices()) { 
      points.add(new WB_Point3d(v.x,v.y,v.z));
  }
  int[] toxiFaces=wemesh.getFacesAsArray();
  int nf=toxiFaces.length/3;
  int[][] faces=new int[nf][3];
  for(int i=0;i<nf;i++){
   faces[i][0]=toxiFaces[i*3];
   faces[i][1]=toxiFaces[i*3+1];
   faces[i][2]=toxiFaces[i*3+2]; 
  }
  HEC_FromFacelist ff=new HEC_FromFacelist().setVertices(points).setFaces(faces);
  return ff;
}
3D mesh hill-climbing algorithm, using Processing, Hemesh, Python and the image compare command-line tool in ImageMagick. Given any image the mesh will self-iterate towards it, first by transforming shape, then mesh face colour. The sequence pictured above takes about 1 hour, these are just 16 stills from thousands of permutations that take place over that duration. The result is an entirely automated 3D printable colour object visually similar to the image provided. 

3D mesh hill-climbing algorithm, using Processing, Hemesh, Python and the image compare command-line tool in ImageMagick. Given any image the mesh will self-iterate towards it, first by transforming shape, then mesh face colour. The sequence pictured above takes about 1 hour, these are just 16 stills from thousands of permutations that take place over that duration. The result is an entirely automated 3D printable colour object visually similar to the image provided. 

Playing around with a completely new concept to take a short break from scan/remix prints.

Playing around with a completely new concept to take a short break from scan/remix prints.

Voxelator. The start to a new Processing sketch that transforms 3D Scans into voxels, with definable voxel size. 

Voxelator. The start to a new Processing sketch that transforms 3D Scans into voxels, with definable voxel size. 

Work in progress: generating textures for multi-particle meshes, with Hemesh, Processing and meshlab.

Work in progress: generating textures for multi-particle meshes, with Hemesh, Processing and meshlab.

Parametric tPot(); generator. Input: 3D Scan, Output: Iterative physible. Made w/ Processing by @m_pf