WALLS - Tools for Cave Survey Data Management

Version 2, Build 2016-10-05

The Walls download site is hosted by the Texas Speleological Survey. Additional program information, along with a link to the most recent Walls build, will normally be available at the TSS Web site.

To review the changes in the most recent program update, see the RECENT BUILD HISTORY section below. Because of the way Walls is being developed, it's almost certainly the case that the latest build is an improvement over the previous build and compatible with existing project data. The build date is displayed in the program's About box.


To download the Walls setup program, select this link: Walls_setup. When the download is complete, run Walls_setup.exe and follow the instructions. If upgrading, you can use your existing Walls program directory without explicitly uninstalling the earlier version. You shouldn't have to purge work files and lose project-specific option settings. The prior official release is still available here, but if you ever decide to revert back to an older version of Walls you'll have to uninstall the newer version first.

A printable PDF manual, essentially a copy of the online help, is installed during setup and is also available separately: Walls manual. All that's missing in the manual are the pop-up windows with short descriptions.

Also part of the installation are two sample projects that demonstrate both basic data entry and SVG round-tripping. If you're running a version of Windows later than XP, the samples will be installed in the Public folder, normally C:\Users\Public\Walls Projects. Otherwise they are installed in Projects, a subfolder of the Walls application golder. After opening the first project, Kaua North Maze.wpj, read the contents of the first project tree item, a text file that describes the sample data and serves as a brief introduction to Walls2D and SVG map production.

A second sample project, Tutorial.wpj, can serve as a getting started guide. While it also has an SVG source file, its main purpose is to illustrate basic features of a georeferenced data set.


Walls incorporates an SVG map viewer, Walls2D.exe, that's launched for viewing exported SVG map documents. Much of its functionality, however, requires the presence on your system of Adobe's free SVG viewer plug-in, ASV 3. If you don't already have ASV installed, please download and run the executable setup file using this direct link to Adobe's download area: SVGView.exe. The setup is quick and there are no options.

Although Adobe has ended official support of the viewer, the ASV EOL FAQ states the following :

Adobe does not currently have plans to remove Adobe SVG Viewer from the Adobe.com download area. Adobe recognizes that customers have built Web applications that depend on ASV being available for download, and although Adobe does not plan to develop ASV further, we plan for the existing versions to be available for download as long as our customers rely on them.


Version 2, Build 2016-10-05

  • A change was made to make the program more usable on computers with screens of very high pixel density, 276 dpi being typical for the newest laptop displays. Recent Walls builds were incorrectly compiled as being "dpi-aware", which prevented Windows from performing a suitable scaling. (Adobe Illustrator CS6 also has this problem, but fortunately an unofficial fix for this is available.) Higher-quality graphics in Walls, including true dpi awareness, will appear in a future build.

Version 2, Build 2016-07-31

  • Several bugs introduced with the 2016-07-13 build were fixed. Passage rays were not compiled correctly, resulting in truncation. The color selection dialogs failed to function properly on Windows XP systems only. Thanks to Igor Teleshman for helping resolve these issues.
  • Help file and user interface improvements, mostly related to SVG round-tripping.

Version 2, Build 2016-07-13

  • Importing Compass data is now a built-in feature, with project (MAK) files being directly convertible to georeferenced Walls projects. Data made available by many others, including Larry Fish, Peter Sprouse, Fred Devos, Jim Coke, David Mayor, and Jerry Atkinson helped make this possible.
  • The functions for importing and exporting Survey Exchange Format (SEF) files are more comprehensive, with several SEF support levels offered.
  • User interface improvements: Mouse scroll-wheel zooming and right-drag panning have been implemented for both preview and screen maps. Screen map windows can also be resized without restriction by dragging their borders. When left-dragging with the distance measuring tool, the distance and azimuth are displayed next to the mouse cursor instead of on the status line.
  • Screen maps now have a scale bar alongside a north indicator. Right-click the bar to switch between English and metric units. (This will also affect the distance measuring tool.) Map windows are also dynamically updated as controls in the Segments and Geometry dialogs are manipulated, such as when changing colors and styles, or changing the selected traverse (or floating it). Other dialogs have Apply buttons that will update the appropriate map windows.
  • Multiple open projects and compiled branches with multiple (free-hanging) components are better handled when each have open map windows subject to being updated. When a compilation produces multiple components, branches of the Segments tree are grayed when they don't contain vectors of the selected component.
  • When a selected traverse is floated, the "Attach other end" toolbar button affects both preview and screen maps when the Map dialog option to show the Selected traverse is enabled. This operation toggles the attachment end of the unadjusted version of the traverse, making misnamed stations, for example, easy to spot on a labeled screen map.
  • The context menus for a clicked-on survey vector, both in the text editor and on screen maps, has a "View segment" option alongside "View statistics" and "Properties." This activates the Segments page of the Review dialog, allowing the vector's assigned display attributes to be quickly edited or reviewed. Jim Borden suggested this enhancement.
  • For better compatibility with dive surveys, bisector-style LRUD measurements (LRUD=FB and LRUD=TB) are now supported as recommended by Osama Gobara. This style defines a cross section aligned with the bisector of the angle between two adjacent shots.
  • SVG-related changes: The installation now includes a script that converts the specific SVG groups containing Walls-adjusted artwork to true layers in Adobe Illustrator, a process previously done manually. An export involving two merged SVG files could on occasion produce a file containing an undefined or duplicated symbol name. Also, the merged export will now include transformed w2d Legend data from both files, not just the first one. Peter Sprouse has helped resolve these and similar issues.
  • The program failed to catch as data errors cases where the recorded instrument and target heights are incompatible with the taped distance. This can happen when the taping method is not instrument-to-target and the distance is smaller than the IH / TH difference. The result is either a contradiction or there being two possible solutions for the survey vector. Such cases, more likely in dive surveys, now trigger errors or warnings thanks to Andy Edwards, who discovered the redundancy problem.
  • When one changed the option to generate UTM/UPS grid-relative coordinates after a preferred map view had been saved, a blank preview map would appear after the recompile. The program now clears the saved view after such a change. George Veni reported this bug.
  • Igor Teleshman discovered that passage rays (wall shots) with negative inclinations appeared correctly in Walls3D, but were displayed with zero inclinations in profile view on screen maps and printed maps. This is now fixed.
  • Numerous, mostly minor improvements either forgotten or not worth listing here. The code was ported to Microsoft's latest C++ compiler and libraries (Visual Studio 2015) and should be compatible with Windows 7, 8.x, and 10. For the time being, it also remains compatible with Windows XP.

Version 2, Build 2015-04-05

  • Incorrect compilation settings for the previous build (2015-03-17) broke compatibility with Windows XP. This should be fixed in the current build, thanks to Igor Teleshman's report of the problem.
  • This build incorporates the latest International Geomagnetic Reference Field (12th Generation) model which covers the period Jan 1, 1900 through Dec 31, 2019. You can verify that the declinations displayed by the Geographical Calculator are consistent with those computed with the online calculator at the NGDC web site. You can verify both declinations and magnetic field strengths at the British Geological Survey website.
  • The SVG roundtripping code will log a larger number of diagnostic messages of a certain kind before aborting -- useful when changing the set of surveys associated with an Illustrator document (source SVG).

Version 2, Build 2014-11-01

  • Miscellaneous minor improvements to the code and documentation. The link in the About Box now points to this page on the new TSS website.
  • The program's code was ported to Microsoft's latest compiler version (VS 2013). A Walls release compiled with an earlier version can still be downloaded via this link.
  • A bug was fixed that caused an exported wall outline shapefile to have the wrong scale if the chosen coordinate system was Lat/Long instead of UTM.

Version 2, Build 2013-05-25

  • The VRML export function was modified to output point clouds defining cave passage walls. The lines connecting the points to a station or measuring device are also optionally exported. Joe Mitchell, who is developing an electronic cave mapping device (Caveatron), assisted by designing a data format and providing files generated by the prototype. The VRML viewer, Walls3D, was also updated to display higher-quality (anti-aliased) lines and points.

Version 2, Build 2013-01-29

  • Following a suggestion by Peter Sprouse, the SVG export feature was enhanced to support merging of artwork from two separate SVG files. This represents a major upgrade to the program's roundtripping capability. For more information see "SVG Export Dialog" in online help.
  • Live paint objects in Adobe Illustrator documents should now be adjusted properly during roundtripping. Aaron Addison's work prompted this fix. Also, SVG's <pattern> element is finally supported thanks to Jeff Bartlett. This allows use of pattern fills for objects in any adjustable layer. See help topic "Live Paint and Pattern Support."
  • In a merged SVG export, if a source SVG contains identifiers for vectors missing in the survey data, up to 500 such cases will simply be ignored. Whether or not this limit is reached, the orphaned vectors are listed in a log file so they can be reviewed. It's possible that surveys were inadvertently excluded from compilation. Or a few vectors could have become obsolete due to data corrections, in which case relying on the shifts in other vectors for artwork adjustment and touching up manually is usually all that's required.
  • Other SVG export improvements include displaying adjustment details whether or not the Walls2D viewer is launched. As suggested by Jeff Bartlett, the survey vector experiencing the greatest endpoint coordinate change is listed along with the amount of shift. A bug was also fixed that caused gradient fills to be removed if they were encountered in a sym group, such as in passage cross sections.
  • When the units of exported shapefiles are specified as Lat/Long (the new default), the coordinates that appear in the attribute table will have seven decimal places of precision. Also, the elevations (Z components) of 3D shapefiles are scaled from meters to degree units as required by the format definition. For best compatibility with other software you should specify UTM units for 3D shapefiles.

Version 2, Build 2011-04-12

  • This build was created with a new compiler version that targets only systems running Windows XP SP2 or later. If setup tells you that your version of Windows is incompatible, you can install the previous Walls build that's available on the website. Please let me know if you found this to be necessary.
  • The Walls2D SVG viewer will notify you if a new install of Adobe's SVG viewer is required due to Internet Explorer being upgraded to version 9. This IE upgrade, infortunately, disables the viewer installation, causing the prior version of Walls2D to produce a "script error" upon startup.
  • A compiled dataset can straddle UTM zone boundaries, with fixed points defined in more than one zone. For completeness, the Universal Polar Stereographic (UPS) coordinate system is also seamlessly supported.
  • The geographical calculator has been enhanced in multiple ways. It performs coordinate conversions across UTM/UPS, UTM zone, and equatorial boundaries. The intensity of the magnetic field's horizontal component is displayed alongside declination. You can transfer coordinate pairs via the clipboard, the supported formats being suitable for pasting directly into the search boxes of online mapping programs. The geodetic datum that's initialized by default is WGS84 instead of NAD27. (See the new sections under Geographical Calculator.)
  • Options to produce either UTM/UPS or Lat/Long coordinates has been added to both the coordinate listing and shapefile export dialogs. For shapefiles, Lat/Long degrees is now the default coordinate type.
  • Miscellaneous fixes: An SVG export involving a merged Illustrator 11 file could on occasion produce an invalid SVG that Illustrator couldn't open. Thanks to Stan Allison for reporting the problem. As suggested by Bob Osburn, gradient color assignments, such as color-by-depth, are recognized when exporting SVG vector layers. Jason Richards discovered that network pathnames were not being handled properly, preventing access to project datasets on a local network.The undo/redo feature in the text editor, if used in a certain way, could cause a program shutdown. The Geographical Reference page would sometimes display the datum name incorrectly. Modules wallmag.dll and wallzip.dll have been removed, the code now part of the exe.

Version 2, Build 2010-05-14

  • The geographical calculator module included with the last build (wallmag.dll, 2010-01-14) has a defect that causes incorrect magnetic declinations to be computed for a 5-year period beginning in 2005. The effect is that a correct declination computed for Jan 2005 is also returned for subsequent dates, up until Jan 2010. Thereafter, correct values based on the IGRF-11 model are returned. The error introduced will depend on location. For example, in central Texas the model's declination, instead of remaining constant, actually decreased a total of 0.6 degrees over that period. This build includes a repaired calculator module that should now agree with the online implementation at the NGDC web site. Thanks to David S. Taylor and Jeff Bartlett, respectively, for discovering and reporting the discrepancy.

Version 2, Build 2010-01-14

  • Igor Teleshman discovered that "percent grade" inclination units were being incorrectly processed as proportional to the angle instead of proportional to the tangent of the angle. The effect, unfortunately, was an easily overlooked systematic error in situations where "Percent" was specified for a V, VB, IncV, or IncVB units override. For example, a 5% grade is 2.86 degrees, not 2.25 degrees.
  • This build incorporates the latest International Geomagnetic Reference Field (IGRF) model, which covers the period Jan 1, 1900 through Dec 31, 2014. Also, a problem was fixed that caused the geographical calculator to stop working properly when the previous model expired on Jan 1, 2010. You can compare the declinations computed by the calculator with output produced by the IGRF calculator at the National Geophysical Data Center (NGDC) web site.
  • As suggested by Bob Osburn, the Editor Options dialog now has settings to control the initial width and height of an opened editor window. The default width was increased from 60 to 80 characters.
  • Several minor bugs were fixed, one being the occasional display of an empty or corrupted datum name on the Geographical Reference page of the Properties dialog.

Version 2, Build 2008-12-26

  • Several Vista compatibility issues are addressed in this build. When run under Windows Vista the Walls setup program stores the sample projects in Vista's "Public" folder if the "Program Files" folder is chosen as the install location. This is to allow read/write accessibility for all users. Also, the SVG map viewer, Walls2D, no longer uses the application folder for temporary files. Under Vista that would disable the toolbar buttons that control SVG layer visibility. See the above note regarding the Vista compatibility (and future availability) of Adobe's SVG viewer.

Version 2, Build 2008-08-22

  • The substantial change in release B8 is the use of a different file extension for project script files. The required extension is now WPJ instead of PRJ. The renaming was done to avoid conflicts with the projection files used by modern GIS software. The transition should be entirely automatic. Walls will still recognize the PRJ files created by earlier releases but will prompt for confirmation and automatically change their extensions to WPJ in the process of opening them.
  • New compiler versions (both for code and online help) were used for this release. Windows Vista compatibility has been improved, for example the pop-up windows in online help should now function properly under Vista. You'll find a printable version of the online help, Walls_manual.pdf, in the doc subfolder. There are several new or revised topics, mostly related to SVG round tripping.
  • When exporting UTM shapefiles for datums NAD27, NAD83, and WGS-84, the program now produces ESRI-compatible projection files with extension PRJ. The presence of a PRJ component greatly simplifies adding shapefiles to GIS projects, allowing for the automatic conversion of coordinates to a different datum or map projection when it's required.
  • Miscellaneous minor fixes. An option to suppress the averaging of foresights and backsights was added to the data format due to a suggestion by Bryan Signorelli.

Version 2, B7 Release, Build 2007-09-23

  • The SVG export function was revised to work around an annoying problem present in all recent versions of Adobe Illustrator (especially CS3 it seems), which is the tendency to occasionally rename an object or layer unnecessarily when writing an SVG. For example, w2d Survey might be renamed w2d Survey_1_, even when it isn't necessary for insuring ID uniqueness (an SVG requirement). This would cause Walls error messages such as "invalid layer name" or "no vectors in view", the easiest fix being to edit the SVG manually. To get around this bug, suffixes like "_1_" are now removed during the processing of w2d layer names and vector IDs.
  • Two additional levels of prefixing were implemented with directives #PREFIX2 and #PREFIX3. This simplifies the merging of large surveying projects, where the original level-one prefixes (field book numbers, for example) are not necessarily unique and would cause conflicts. Jim Borden suggested this enhancement.
  • Miscellaneous fixes. In earlier builds, clicking the "Data summary" toolbar button without the review dialogs being open would cause the program to close unexpectedly. The program should now start up noticeably faster.

Version 2, B7 Release, Build 2006-06-02

  • IMPORTANT: If you downloaded a copy Walls from this site anytime between 2006-05-23 and the time of this build, you must optain this update to correct an issue with first-time project compilations (which would fail with an error message).
  • The SVG merge function was fixed to properly support character entities representing Unicode characters. Stan Allison helped discover this limitation. A few other improvements were made to the SVG export module, now at version 1.13.
  • The project management features were improved based on suggestions from Jim Borden and Scott House. Duplicate shots are now optionally logged. It's now possible to delete data files associated with project tree branches. The text editor's search and replace dialog is now properly disabled for read-only files.
  • Miscellaneous fixes: The format of exported 3D shapefiles was not strictly correct, potentially causing problems with readers. The button "Flag Symbols" on the Segments page was re-enabled to open the Flag and Marker Symbols dialog. The report option to organize stations by flag name now prints the flag name headings correctly.

Version 2, B7 Release, Build 2005-12-01

  • The SVG-related features, including the tutorial project's source SVG, Polygon_w2d_mrg.svg, were updated to support roundtripping with the latest Illustrator version, 12 (or CS2). For details, see Roundtripping SVG Maps - Instructions for Illustrator Users in the help file.
  • The modules wallnet.dll and wallsrv.dll were eliminated, their code now part of Walls32.exe. Also, to avoid incompatibilities with some laptop versions of Windows, the program files are no longer compressed.
  • The link to the Walls home page in the About box was updated.

Version 2, B7 Release, Build 2005-03-10

  • This release fixes a bug (discovered by Jim Borden) that causes text to sometimes not scroll properly in an editor window.
  • Miscellaneous help file changes were made. Victor Komarov corrected an error in the Data Screening Tutorial topic.

Version 2, B7 Release, Build 2005-01-10

  • The latest version of the International Geomagnetic Reference Field (IGRF) was incorporated. This is the mathematical model used to estimate declination when the geographical calculator is active or when declinations are computed automatically during data processing. The model now covers the period Jan 1, 1900 through Dec 31, 2009.
  • A multi-level undo/redo capability was added to the text editor. This is accessed in the standard way: from the toolbar, edit menu, or with keystrokes Ctrl-Z and Ctrl-Y. It's now possible to reverse all changes made to a file since it was opened.
  • An option to enlarge LRUD polygons by a specified amount was added to the Passage Display Options dialog as suggested by Mark Passerby. This can be used in connection with SVG roundtripping to produce gradient-colored passage floors. Making the polygons larger allows portions outside the drawn passage walls to be clipped so that floor regions are entirely covered.

Version 2, B7 Release, Build 2004-12-17

  • Support was finally added for the manipulation and highlighting of traverse chains in the Geometry and Map review pages. If you're already somewhat familiar with the data screening tools in Walls, you can review a documentation excerpt to get a sense of what this entails.
  • Improvements were made to the report dialogs and their methods of access via tool bar and file menu. Coordinate reports can be restricted to data appearing within the current view frame. When the program sorts project tree branches and station names in reports, strings of digits are handled properly -- for example, "A30" comes before "A100". To help prevent inadvertent editing, project files can be compiled, opened, and navigated in read-only mode. Jim Borden is largely responsible for these changes.
  • There is a new item on the right-click context menu for screen maps named Resize map frame. It allows us to quickly change the overall map size (resolution) without affecting the view or other map attributes. The change can apply to just the active map window or can be saved as the default for new map windows.
  • To aid computer map drafting, an SVG export option is now available that places cross section rectangles alongside LRUD bars. This can occur only for LRUD specifications with a "C" argument following the last dimension number or facing azimuth. Examples: *1,3,1,0,c*, <.5,1,5,1,270,C>. The check box for this option is in the Advanced SVG Export Settings dialog. (Thanks to Mark Passerby for detailing this feature.)
  • Backup archives now store items that were originally outside the project's folder tree in suitably named subfolders. The stored PRJ file is modified accordingly, preventing the "blank page icon" problem that sometimes occurred after extraction. Bill Stone encouraged this improvement which simplifies transporting large projects to different computers.

Version 2, B7 Release, Build 2004-08-19

  • This is a maintenance release of Walls with miscellaneous improvements to the interface, help file, and error reporting. The search and replace functions were significantly upgraded. See Program Operation - Search Operations in the help file.

Version 2, B7 Release, Build 2004-05-20

  • SVG roundtripping now works with the latest Adobe Illustrator version (11 or CS), which has improved support for the SVG format. Also, with both AI10 and AI11 you can now decorate your maps with linked or embedded images, rotated or path-aligned text, and SVG filter effects. Such artwork will correctly conform to view or survey changes after processing by Walls. This processing has been revised so that symbols, text, and unnamed groups of objects can be placed in shp layers and their north-relative orientation will be preserved. (Unlike passage outlines, for example, they will be translated and scaled but not morphed.) As before, placing such objects in sym layers preserves their page-relative orientation. Numerous other improvements were made to SVG export/import operations. See SVG Layer Definitions in the help file and the updated sample in the Walls\Projects\Tutorial Project folder.

    The shadowed box at left was created with an SVG filter, which is more flexible and efficient than an effect that has to be rasterized and embedded as an image. The large rocks are symbol instances placed in layer w2d Detail shp. Their positions might change with an adjustment, but their orientation with respect to the rotated grid is preserved. This is also true for the path-aligned text.

  • The Color Gradient Dialog now has an "Apply to Map" button that updates (without closing the dialog) all open map frames with the color gradient you've temporarily defined. If you then cancel the dialog, the previously defined gradient is preserved while keeping any changes to the map displays. This feature (suggested by Jim Borden) makes it much easier to choose an effective color range. Also, an "Apply to Map" button replaces "Update" on the Segments page of the Review dialog. This refreshes all open map frames with the color settings on that page.
  • Miscellaneous improvements: The options to view previously generated SVG and VRML files behave differently. If an SVG file is highlighted in the project tree, the operation will open that specific file. Otherwise, you'll pick from a date-sorted list of files in the project folder.

Version 2, B7 Release, Build 2004-03-20

  • The most significant change with this build is that survey vectors and flagged stations are automatically highlighted as you move the mouse pointer over a displayed map. Upon selecting an object you can jump to either its definition in the raw data or to its position in the statistics tables. Another choice is to display all compiled information about the object. The information window is also available from the editor and Traverse page context menus and has buttons for copying coordinates directly to the geographical calculator. See topic Vector Properties Window in the help file.
  • Vector highlighting is enabled when a screen pixel represents two meters or less. If an enclosing rectangle is present, right-clicking displays a menu like the one at left. If the pointer is not near an object when you click, a different menu appears -- one that supports zooming, layer toggling, and other operations.

  • The help file topic Accessing Walls from Other Applications documents how an external program, such as Huw Millington's Windows Grep, can be tightly integrated with Walls to perform specialized searches (involving wildcards, etc.) across project data files.
  • Numerous minor improvements. Examples: The display statuses of station notes and flags are preserved project settings. Color selection buttons show the current color or gradient type when the mouse pointer pauses over them. Rendering of gradient-colored LRUD passages was improved. The tutorial sample project was expanded.

Thanks for taking the time to look the program over. Please contact me if you have suggestions or need additional information.

David Mckenzie davidmck@austin.rr.com