Skip to content
baharmon edited this page May 17, 2016 · 22 revisions

Hand sculpted models

Sculpt a polymer-enriched sand model using Tangible Landscape with the difference analytic (i.e. cut and fill) as a guide. Use Tangible Landscape to continuously scan your model as you sculpt it. Use the difference analysis to compute the difference between your reference elevation and the scanned model. This will show you in near real-time where you need to add and remove sand.

  • Acquire elevation data for your landscape. See Data sources and Sample data.
  • Import the elevation data into GRASS GIS as a raster.
  • Compute contours from your elevation raster with the module r.contour.
  • Calibrate and setup Tangible Landscape. See Using the system.
  • Project the map display with the contours onto the table.
  • Resize the map display to the dimensions of the model you plan to build.
  • Add a loose pile of sand inside the projected map display.
  • Scan once and adjust scanning parameters.
  • Turn on (uncomment) the difference analysis in current_analyses.py
  • Add the difference raster diff to the project map display.
  • Sculpt the sand using the difference and contours as a guide.
    • Iteratively add sand where diff is blue and remove sand where it is red.

Difference Analytic

Difference analysis

This implementation vertically rescales and translates the scanned raster to match the original elevation raster using the module r.regression.line.

def run_difference(real_elev, scanned_elev, env, **kwargs):
	regression_params = gscript.parse_command('r.regression.line', flags='g', mapx=scanned_elev, mapy=real_elev, env=env)
	gscript.mapcalc('{regression} = {a} + {b} * {before}'.format(a=regression_params['a'], b=regression_params['b'],before=scanned_elev, regression='regression'), env=env)
	gscript.mapcalc('{difference} = {regression} - {after}'.format(regression='regression', after=real_elev, difference='diff'), env=env)
	gscript.write_command('r.colors', map='diff', rules='-', stdin="-100 black\n-20 red\n0 white\n20 blue\n100 black", env=env)

CNC routed models

  • ...

3D printed models

  • ...

CNC routed molds for sand casting

  • ...

3D printed molds for sand casting

  • ...