This page is my repository and summary of all (free) tools for landscape creation and visualization that I find, use, or write. The focus is on UNIX command-line interface tools, simulation, and PGM, OBJ, or Radiance import/export. I'd sure love to support more input and output formats, and more functionality. If you notice anything you'd like to see, or would use, please tell me about it! All software available from this page not written or copyright by another author is Copyright 1998-2005 Mark Stock. This code is not guaranteed at all, (well, most of it is GPL'd) and I ask you, in good faith, not to sue me (or any other author), or hold me responsible for any damages caused by using this software. In return, I will promise to not hand out code that will fratz any of your hardware. I'm not good enough to do that, anyway.
If you just want the goods, link to my progs directory: ../progs/
DLA-ND is an arbitrary-dimensional diffusion-limited aggregation
simulator. It creates branching, dendritic shapes in 2D, 3D, 4D, etc. using an
accelerated random walk method and spatial subdivision to accelerate
The newest version was released 2005-09-14.
dla3d was the precursor to DLA-ND, above.
It only operates in three dimensions and is significantly slower than DLA-ND.
It was first released 2003-12-05.
Part-ND is an arbitrary-dimensional, stand-alone particle system
and gravitational simulator written in ANSI C (mostly for my own
amusement). It utilizes an adaptive octree system for heirarchical space
subdivision and can simulate a variety of forces and boundary
conditions including self-gravitation, global gravitation,
self-contact, wall contact, and spaghetti. Version 1.4, with
some bug fixes and a Windows version, was released 2005-09-14.
part3d was the precursor to Part-ND, above.
It only operates in three dimensions and is somewhat slower than Part-ND.
Version 1.0 was released 2003-11-21.
Rocktools is my frequently-used toolkit for
creation and manipulation of open and closed triangle meshes, and is ideally
suited for creating 3D meshes of rocks, landscapes, and rough shapes.
The programs now available with the toolkit are: rockcreate,
rockdetail, rocksmooth, rocktrim, and
Most of those programs can read Wavefront (.obj), TIN, and RAW formats,
and write to Wavefront (.obj), POV mesh (.pov),
Radiance (.rad), Renderman polygon (.rib), irregular triangular
network (.tin), and raw formats. Some programs even support surface
normal smoothing. Wow. I'm due for a new release soon.
hftools is a distribution of useful tools for creation,
manipulation, and rendering of virtual landscapes using triangle
meshes instead of scalar heightfields. It includes
programs called: gtop2pgm, dem2pgm, sdts2pgm, hfscale, hfcolor,
pgmblob, pgmglacier, hf2rad, pgm2stm, tinfile, tinscale, tinsmooth,
vortex2d is a 2-dimensional viscous vortex simulator, its
development has slowed, but still features
viscous decay, particle and vortex generators, image input, and other useful
output functions. From the command-line, it can produce
a series of PGM image files. (No homepage)
erode is a 2D erosion simulator, written by John Beale, creator of
HF-Lab, gforge, and other cool heightfield tools. I have added
export to PGM, and may add more stuff.
rgb2hsv is an ANSI C program that will convert a false-color, shaded
heightfield into its hue, saturation, and brightness constituent
components. It works on any PPM file and will write a PPM file.
It is most useful on heightfield images of the type found at
the Solar System. Here is the code:
plates is a one-shot C program, written in 1988 by Mark Isaak,
that simulates plate tectonics/continental drift. A simple text
interface is provided, and options to export data for land
elevations, sea elevations, and mineral content in text, .ps,
and .pgm format are included. Initial continent forms are not
as nice as cdrift (below), but plates is scalable and computes
ocean depths, with mid-oceanic rifts, hot spots, for volcanoes,
and wrapping continents on a square torus.
cdrift is a continental drift simulation program which incorporates
several geological principles to create a simulated model of
a super-continent break-up and reassembly cycle.
The original code is copyrighted by David Allen, and can is for Amiga, PC,
and Unix. My rewritten parts have only been tested on Linux.
The file planet.tar.gz includes source code for TEC, the
continental drift program in cdrift, and CLIM, a climate simulator.
Dave has recently packaged a Windows/Sun/Linux distribution.
dem2pgm takes a USGS DEM and completely converts it to a 16-bit
ASCII-encoded PGM image file. Originally dem2tga.c, by Jon Larimer.
Also available is John Beale's dem2pgm, originally by
Christopher Keane. My version is not perfect, but it uses
more information from the DEM.
dem2rad takes a USGS DEM and writes out a Radiance-readable data
file containing all of the elevation nodes. Originally demex.c, by
Robert Smyser, then dem2rad.c, by Gilbert Leung. Recent changes
by Lars Grobe.
|No image|| sdts2pgm|
sdts2pgm takes a USGS SDTS-formatted DEM and completely converts it to
a 16-bit ASCII-encoded PGM image file. Originally sdts2ARC.c, by Sol
Katz. This one is perfect. Way to go Sol!
|No image|| starform|
starform is the enhanced version of accrete, the solar
system generator. The first widespread version of accrete was
written in 1988 by Matt Burdick, and was called starform.
I added a more descriptive usage message, and changed
the seed generator code to work on my SGI, and you can
get my version by selecting the first link.
|No image|| fips123|
fips123 is a software library for the USGS Spatial Data Transfer
Standard (SDTS) file format. SDTS files can contain DEM, DLG, or
any other type of data. 7.5' USGS elevation data for most of the
U.S. is available in this format. You need to build this library
to compile sdts2pgm.c, a conversion program I will make available
very soon. This library makes fine under Linux, but uses GNU make,
which I don't have on my SGI at work.
|No image|| Triangle|
Triangle is a 2D quality mesh generator and Delaunay triangulation
program. It supports adaptive grid refinement and a slew of other
options. I hope to use this software to convert rectangular
elevation data to an improved-quality triangular-mesh heightfield.
Mark J. Stock, Graduate student, Aerospace Engineering, The University of Michigan