Tuesday, August 30, 2011

Rescape at Summer's End

Rescape is a software add-on to Google Sketchup that attempts to make it easy to do neighborhood redesigns with an emphasis on carfree or car-light streets and comprehensive transit. I started planning and working on Rescape about a year ago for my master's thesis at Tufts University's Department of Urban and Environmental Policy and Planning.

As a software developer lacking urban design skills, I needed a tool that would help me visualize compelling improvements that are made possible when neighborhoods are built for people and cars become exceptional instead of dominant. I enjoyed the free and friendly user interface of Google Sketchup, but I found that even knowing the fundamentals of the software were not enough to do neighborhood designs efficiently. I began to create a mental list of features that would help me design faster for accuracy of layouts and visual impact. I found myself mostly interested in improving the streets, since this is the dominant form of public space and has the most potential to be reallocated to better uses. The main two tools that I desired was the ability to download accurate road data on top of satellite images and then to draw surface elements such as streetcar tracks and cycle tracks. Using an early version of Rescape, I downloaded street data from OpenStreetMap and then used Sketchup as usual to produce the following model based on the exiting intersection shown:

Note that Sketchup already supports satellite images that are geo-referenced, so programmatically placing OpenStreetMap data accurately upon them is relatively easy. Oftentimes the OpenStreetMap data is not quite what is desired, either because something like a road width is inaccurate or the user wishes to add new surfaces that do not currently exist. I therefore created several tools for editing ways, including one that widens or shrinks road edges and one that adds new ways. These tools work equally well on roads, paths, railroads, and waterways. Below we see the steps of adding a new road between two existing ones. The last image shows that the road recognizes its place in the network when we draw streetcar tracks:

It's also possible to use existing Sketchup tools to make a more sophisticated shape. This example incorporates a line drawn by the arc tool (I still need to modify the tool to allow the line to connect at two ends):

Here's the edge editing tool in action. The surface the new edges are recognized as part of the way so that surface components can be drawn as usual:

Surface components such as streetcar tracks and cycle tracks are sometimes are parallel to the road and sometimes not. The tool I have thus far developed lets you draw paths that are either aligned with the curve of the road or not, so that you can choose the appropriate solution by holding down a modifier key.

The images on the left show possible configurations for a streetcar track through a traffic circle. The image on the right shows the final product after the user is satisfied with their path and double clicks to produce the 3D component. The same tools works just as well for a variety of path types:

The various paths curve according to their configured properties. A standard rail track tolerates only moderate curves while a cycle track can be tighter. Repeating elements like railway ties and sidewalk segments are fairly easy to configure programmatically. Additionally, all the components are configured to a default color or texture. These can be changed by the user by using standard Sketchup tools, and it would certainly be possible to  allow the user to configure the properties of the components in the future so that they render with the user's chosen colors or textures.

The component pathing tool also let you make fine grain changes to your path as you draw it, responding to input from Sketchup's input field for precise offset from the edge of center of the road. One can alternatively use the keyboard arrow keys to nudge a segment of the path by a foot at a time.

In order to teach users how to use Rescape as painlessly as possible, I have begun constructing a Sketchup tutorial with an accompanying web page that shows how to use Rescape in several steps:

The tutorial should make Rescape straightforward to use, so that users can maximize their time spent on a project.


Obviously, Rescape is still a long way from producing models like the one I first showed. It does manage to remove the hard work of placing surface elements on the streets, and it can make them visually pleasing enough that they go well with the components download from the Sketchup 3D Warehouse. In the short term I have many features to add, such as the ability to distribute components from the 3D Warehouse along a created surface. For instance, the user should be able to download bicyclists and have Sketchup distribute copies of them along cycle tracks. There are still many limitations to working with Rescape. Roads that change levels for overpasses are not yet handled elegantly and there is no way to account for elevation changes. Some of these challenges may be surmountable using other Sketchup features and plugins. Others will be too advanced for a "sketching" tool, and will require traditional professional urban modeling software.

The long-term vision of Rescape is to give people the ability to see what their neighborhood could look like with more space for people, transit, and people-oriented amenities. My hope is that Rescape and other freely available software products will contribute to this goal.

No comments: