Skip to content
Garrett Millar edited this page Feb 23, 2018 · 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.
  • 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.

Your hands will be scanned in as you work. If you are using a relative color table for the difference this may cause shifts in color. Using an absolute color table solves this issue, but color rules will need to be customized based on the range of values in your elevation map. An example color table: "-100 black\n-20 red\n0 white\n20 blue\n100 black".

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

Overview

Models should be pre-casted well in advance of their use (e.g., ~2 hours before); however, because of the chance of models collapsing, you will need to check on the structural integrity of each model before proceeding with any remaining setup procedures. Recreate any models that have collapsed or if corners have begun to sag as these are the most common defects to occur.

How to prepare the models

  1. First, make sure you have the correct model.

  2. If sand is compressed, fluff it up before filling model.

  3. Start filling the first layer of kinetic sand, paying close attention to the corners and sides.

  4. Now start compressing the first layer of sand, again paying special attention to the corners and sides.

  5. Repeat this process until the model is filled to the top, making sure each layer is fully compressed, especially the sides and corners.

  6. Once you feel confident the model is adequately filled and compressed, use the wooden rod to scrape excess sand from the model.

        [[https://github.com/gcmillar/TL-Images/blob/master/Model_Making1.png|alt=model_making1]]
    
  7. Now fill any holes or cavities you see and again scrape the excess sand. Repeat this process until you have a smooth surface.

  8. Once you have a smooth surface, you need to connect the model with the base. Lay the base on the model so that the base label lays directly on the model label. This enables the experimenter to know which direction is north and ensures the model will be placed properly on the experimental station (label facing north) (see below figure with blue annotation).

        [[https://github.com/gcmillar/TL-Images/blob/master/Model_Making2.png|alt=model_making2]]
    
  9. Once the base and model are connected, pick up both with a strong grip and flip them so the base is now the bottom. (Be careful, the heavier models can be a bit difficult to flip. If you are a smaller stature person, you may need help flipping the heavier models).

  10. Before removing the model cover, make sure the base and model sides and corners are perfectly aligned, this is very important for the Kinect to properly project the landscape on the sand. Once the model and base are fully aligned, gently remove the model cover from the sand and check for any defects. Repair any minor issues and if any big issues such as a corner collapsing occurs, remake the model.

  11. Repeat this entire process for each model you are preparing from scratch.

Storage of models

  • Once each model is finished, CAREFULLY store them. If the model shifts, you will need to recast the model by putting the model cover back over the sand, flipping the entire model and repacking the existing sand. Repeat steps 5 through 9 under the “How to prepare the models” section above to recast the model.

  • Also, when storing the model, the base label should face directly to the back. This is to make it easier for the experimenter to transfer the models from their storage location to the Tangible Landscape station.

        [[https://github.com/gcmillar/TL-Images/blob/master/model_storage.png|alt=model_storage_example]]
    

3D printed molds for sand casting

  • ...