Build-your-own
Read our Wiki for detailed instructions about setting up Tangible Landscape and joining our community.
Multiplatform
Dependencies
Program | Use |
---|---|
libfreenect2 | Drivers for Kinect v2 |
PCL | Point cloud processing |
GRASS GIS 7 | Geographic information system |
Blender + BlenderGIS addon | 3D modeling engine and GIS addon |
guide
- Install PCL with Homebrew: http://www.pointclouds.org/documentation/tutorials/installing_homebrew.php
- Install GRASS GIS 7.0 with Homebrew using the OSGeo Mac Homebrew tap: https://github.com/OSGeo/homebrew-osgeo4mac
- Installing libfreenect2: https://github.com/OpenKinect/libfreenect2#mac-osx
Software
Components | Type | Use |
---|---|---|
grass-tangible-landscape | GRASS GIS plugin | Tangible interface for GRASS GIS |
r.in.kinect | GRASS GIS addon | Import data from Kinect |
tangible-landscape-immersive-extension | Blender addon | Import and render 3D objects from Tangible Landscape |
Hardware
Type | Product | Cost |
---|---|---|
Computer | System 76 Oryx Pro | $1500 |
Projector | Optoma ML750 WXGA 700 DLP LED | $500 |
Screen or VR headset | Oculus Rift DK 2 | $400 |
3D sensor | Xbox One Kinect | $100 |
Kinect Adapter | $50 | |
Stand | Avenger 40-Inch C-Stand with Grip Kit | $200 |
Avenger or Kupo Grip Head | $30 | |
Kupo 3 Way Clamp | $35 | |
Kupo Grip Arm Support | $70 | |
Avenger F800 3-Inch Baby Wall Plate | $10 | |
Avenger F800 3-Inch Baby Wall Plate | $10 | |
Peripherals | HDMI cable | $10 |
Extension cord | $10 | |
Modeling media | Waba Fun Kinetic Sand 11 Lbs | $50 |
Hardware setup
Place your physical model of a landscape on a table. Mount the Kinect sensor on baby wall plate attached to a c-stand. Adjust the height of the c-stand so that the Kinect is 0.7 m - 1 m above the model. Mount the projector on another baby wall plate attached to another c-stand. Connect the Kinect and projector to your computer.
Projector configurations
Model making
To sculpt with Tangible Landscape you need a malleable model made of a soft, deformable medium like polymer enriched sand. When you are using Tangible Landscape for object detection you can use hard, rigid models such as 3D prints.
Hand sculpting with difference analytic
You can easily sculpt a model with polymer enriched sand using Tangible Landscape. Project a digital elevation model and the derived contours onto the table. Use this as a guide for sculpting. You can also use Tangible Landscape to compute the difference between the scanned model that you have sculpted and the original digital elevation model. Project the color coded difference (i.e. cut/fill) for a real-time guide of where to add or remove sand. You can also vertically rescale and translate the scanned raster to match the original DEM using the module r.regression.line.
import grass.script as gscript
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)
Digital fabrication
You can build precise physical models using digital fabrication technologies like computer numerically controlled (CNC) manufacturing or 3D printing. You can use CNC milled and 3D printed models as molds for casting polymer enriched sand into precise yet malleable models. Cast models can precisely represent complex forms that are too challenging to model by hand. You can reset your sand model by simply by casting it again.
Need help?
If you feel like you would rather have somebody do this for you, check Tangible Landscape support providers page.