Download PDF
Download page Future of HEC-RAS.
Future of HEC-RAS
By: Alexander Kennedy
The Hydrologic Engineering Center's (CEIWR-HEC) River Analysis System (HEC-RAS) team has been hard at work developing the next generation of our software. This enormous effort is analogous to our transition from HEC-2 to HEC-RAS in the early 1990s. As such, the new product will be distinguished with a new name: HEC-RAS 2025. We've been working on this effort for 5 years, slowly ramping up the development team as the product advanced. This time has involved a lot of experimentation, consultation, and a few minor restarts as we evolved toward a product we were proud to deliver and happy to use ourselves. This product is still being rapidly developed, so images here will likely change before it gets into your hands.
Why invest in a new generation of software? – HEC-RAS was first released to the public in 1995 (Figure 1) with steady-state computations and a simple stick-figure geometry. Over the years, additional capabilities and complexities have been added (unsteady-state, geospatial capabilities, water quality, sediment, 2D modeling capabilities, and a wide variety of other features). Since its first release, the HEC-RAS code has grown to nearly 3 million lines written in 5 different programming languages. Subsequently, it has become increasingly challenging to fix, update and improve. To meet the needs of today and of the future, it is necessary to invest in the next generation – HEC-RAS 2025.
Figure 1. An installation floppy disk of the first HEC-RAS release.
What's New in HEC-RAS 2025
User Interface
One of the highest priorities for our rewrite was a complete re-imagining of the user interface (UI). The core of the HEC-RAS 1.0 interface was first designed and built around 1993, and revolved around tabular data entry with simple geometry schematics. The technological environment has evolved enormously since then – now computers have always-on network connections, multiple cores, a wide variety of screen sizes, hybrid local/cloud computational power, and many other factors that influence UI design choices. In order for our next 30 years to be as successful as the last 30, our interface had to evolve too. Figure 2 is the current launch screen for HEC-RAS 2025.
Figure 2. Launch screen for HEC-RAS 2025.
The first, and most obvious difference that people might notice is ... dark mode! We have an excellent light theme as well, and we plan to support theme customization tools in the future (color-blind friendly defaults, etc.). Another major change in HEC-RAS 2025 is that the initial splash-screen has been dramatically simplified. On the left panel, we have various entry-points into the software - New Project, Open Project, Example Datasets, and Scratch Project (more on these later). Front-and-center, there is a large image of your most recently opened project. If you scroll down, you can see a timeline of your recently opened projects, with metadata and images from each. On the right panel, we have a list of recent software releases and our updater. To begin, all you need to do is click the image of the model you would like to open.
When you open a RAS project, you launch straight into the main map window (Figure 3). The interface is all-new, but will hopefully be familiar to anyone who has spent time in RAS Mapper or any other GIS software. We have our layer-list on the left side, labelled and organized by layer type. On the right side, we have a few tabs that will contextually respond to elements you select in the tree or the map window. And of course, we have our map front-and-center. This will become a major theme in the new UI, and our team believes that more model interactions should happen visually – with fewer tables and more charts and maps.
Figure 3. Main map window for HEC-RAS 2025.
Modern UI features
HEC-RAS 2025 has too many new user interface features to fully enumerate here, but we'd like to highlight a few. We have drag/drop capabilities on all windows (Figure 4), which allows you to organize them how you wish. When windows are dragged into the same area they will be added as a tabbed, multi-pane interface. We also understand that users are frequently working on laptops with small screens, and a lot of time and energy has been put into improving the organization and layout of various UI elements as screens get compressed. These dynamic layouts are DPI-aware, and should work across a much wider range of small and large devices.
Figure 4. Example Drag & Drop UI elements.
Portable Software
HEC-RAS 2025 was designed from the start to be fully portable. Everything it needs is self-contained in the distribution directory (currently about 220 MB). When the software is fully portable and smaller than the average terrain size, there are a lot of new interesting possibilities. You can freely update and distribute the software how you wish, and even archive a copy of the software that was used to run a model – inside the project directory itself! This also enables feature updates delivered directly within the software (Figure 5). We'll be prototyping this feature during the Alpha period, so be sure to let us know how it's working for your organization. With one click, RAS downloads a small patch and pastes it over your current installation, then reboots. In the future we will have an enhanced interface to control side-by-side installs, multiple feature/stability channels (Alpha/Beta/Stable), etc.
Figure 5. Updater interface with release notes.
Example Projects
Example projects are now available from the main launch screen (Figure 6)! We have them tagged with relevant data ('Precipitation', '2D', etc.) and they're searchable and sortable. We want this to become a primary teaching tool for new engineers, as well as a convenient test playground for our newest features. When we release our first build with infiltration, you shouldn't have to build a fake model and learn how to set it up – instead, we will provide a sample dataset with calibrated infiltration that you can download directly from the interface. As we develop the training materials for HEC-RAS 2025, a subset of these provided datasets will link to our online guides and tutorials page. We're hoping this provides a good foundation of supplementary training material for engineers that are new to RAS.
Figure 6. Example Projects downloader.
Mesh Generation Tools
Our team has been working on a complete rewrite of the mesh generation system in HEC-RAS 2025. In this system, the user digitizes a series of arcs (bold lines shown in Figure 7 (a)) that form rings, which we are calling regions in the conceptual mesh. Arcs and regions get individual metadata (cell spacing, cell type, magnetization, etc.) that fully define the interior computational mesh. The new tools will allow for faster mesh development and higher quality meshes. With this new system, a mesh can be customized (Figure 7 (b)) with a few simple instructions at run-time. A user can perturb cell type, mesh resolution, and (in the future) switch between 1D and 2D. This flexibility will allow for quick and easy changes to the model at any time during model development. Initially, there will be four types of meshes available in this new system: quadrilateral (channelized), cartesian, triangular, and hybrid quad/triangle.
Figure 7. (a) Shows an example area with a series of arcs (bold lines) that form rings, which we are calling regions in the conceptual mesh. (b) Shows the example mesh displayed in (a) customized.
The principle goal for our new quadrilateral meshes (Figure 8 (a)) is to follow channelized regions, where the computational cells conform to the curvature of the channel. In these regions, the user will define the cell length and a width or count property. Cartesian and triangular (Figure 8 (b)) meshes are intended for 2D overland flow scenarios, and the user has options to define cell sizes and growth/magnetization properties to ensure a high quality mesh. All of these mesh types have a variety of post-processing routines to improve mesh heuristics, leading to improved stability and model run-times.
One of our principle goals with this new system is to give users a set of global and regional knobs to affect meshes (see the 1/2x and 2x cell-size options displayed in Figure 8). We firmly believe that modelers should experiment with cell-size in their model to see how sensitive their results are to the mesh resolution. Historically, our meshing tools have made that experimentation difficult (to say the least). In HEC-RAS 2025 mesh experimentation will be far easier, and this improvement should lead to reduced model run-times as people are better able to identify where it is appropriate to use larger-scale 2D cells.
Figure 8. (a) Example of quadrilateral conceptual mesh region with a cell width count of 5 and length of 100 ft. (b) Example of triangular conceptual mesh region with 100 ft. cells.
Conceptual meshes benefit a wide range of modeling scenarios. Figure 9 displays an example of a coarse watershed-scale conceptual mesh (Figure 9 (b) labeled "Large watershed scale modeling") versus a refined one (Figure 9 (d) labeled "Detailed modeling), and the type of computational meshes developed from each (Figure 9 (c) and (e), respectively). As we move forward with HEC-RAS 2025, we'll be looking at many more ways to reduce the modeling burden of building multi-scale multi-resolution meshes over the same area.
Large watershed scale modeling | ||
---|---|---|
| ![]() | |
Detailed modeling | ||
![]() |
Figure 9. (a) Provides a study area with a highlighted (red box) example portion for viewing (b-c) large watershed scale modeling and (d-e) detailed modeling.
Performance
HEC-RAS 1.0 began in a world with single core, 50 MHz computers with upwards of 8MB of RAM. Today, smart watches have about 100 times the processing power of those machines. While HEC-RAS 5.0 (and the introduction of two-dimensional modeling) brought a lot of parallel processing to the software, a tremendous amount of legacy code existed that could not be easily re-architected to take advantage of newer hardware. HEC-RAS 2025 is the perfect opportunity to design for the next generation of engineering hardware.
A new explicit solver has been developed for HEC-RAS 2025. Explicit solvers are more effective at parallelizing across many cores, and we expect this will lead to computational speed improvements with newer hardware going into the future. Explicit solvers can utilize more parallelism on high-end engineering desktops, Graphical Processing Units (GPUs) and High-Performance Computing (HPC) environments. The first release of HEC-RAS 2025 will only include the new explicit solver, and an implicit solver (similar to HEC-RAS Version 6) will be added at some point in the future.
The RAS team has developed custom code to improve geospatial processing on a number of fronts. Users should expect significant speed improvements for terrain generation, stored map generation, geometry pre-processing, and panning/zooming performance in the UI. This investment will benefit us for years to come, and is putting us in an excellent spot to tackle the next generation of extreme model sizes.
Cloud Compatible
With a full rewrite and a brand-new architecture, HEC-RAS 2025 was designed from the beginning to run headless (i.e., without a UI) on Linux and in the cloud. This means it will have the capability for native integration with technologies like Docker and S3 and it will enable an entirely new set of software and tooling to be built around it. Model computes, map generation, and other computationally intensive operations will now be supported with simple command-line options from the HEC-RAS process driver. We know that many offices have invested in compute racks where engineers can remote into large servers to run models. We're happy to support this as a first-party use case going forward, and we look forward to seeing how you all use this!
To be clear, this refers only to headless/command-line access. The HEC-RAS user interface will NOT run cross-platform - our UI libraries and technologies continue to be restricted to Windows for now.
Access to the HEC-RAS API
Over the past decade, a burgeoning collection of tools and scripts have emerged from the community to support our users and their models. These tools are incredibly helpful – we have a relatively small team here, and we can't fulfill all advanced use-cases for the wide variety of hydraulic modeling needs across the world.
Unfortunately for the developers producing these tools, our file format is a moving target. People have reverse-engineered our model files, only for us to subtly change them in the next version, breaking their existing scripts. Our HDF5 files were never intended to be interoperable data exchange formats - they were intended as internal HEC-RAS model files. Our support for common data exchange formats (TIFF, Shapefile, DSS) works well, but these formats are necessarily less efficient for encoding HEC-RAS results natively, and don't allow users to mutate model inputs.
That being said, we're happy to announce a supported path for these scripts going forward. We will be opening and documenting a selected set of the HEC-RAS API (Application Programming Interface) to fulfill these same needs. The API is written in C# and it's the same exact code that HEC-RAS uses behind the scenes. Anything you can do in HEC-RAS via the interface, you can replicate with a set of API calls. All of these API calls are fully cross-platform, and can run on the cloud. The next section contains some example code to run a few common operations (specifics subject to change).
Example Code
// Open a project and save a Max Depth grid
Project prj = new Project(@"C:\Path\ProjectName.ras");
Result res = prj.Results[0];
res.SaveMap(filename: "C:\Temp\MaxDepth.tif",
mapType: MapTypes.Depth,
profile: ResultMap.MaxProfileIndex,
cellSize: 10,
projection: WellKnownProjections.WebMercator);
// Open a Boundary Condition file, clone it, change precipitation
Project prj = new Project(@"C:\Path\ProjectName.ras");
BoundaryCondition bc = prj.BoundaryConditions[0].CloneAs("BC Base Precip Up");
bc.Precipitation.LoadGrid(@"C:\Path\newPrecipData.dss");
prj.AddBoundaryCondition(bc);
bc.Save();
// Open a model and run every plan
Project prj = new Project(@"C:\Path\ProjectName.ras");
foreach(Plan pl in prj.Plans)
{
bool success = pl.Solve();
// Log Error
if(!success) { }
}
We hope this official API will allow programmers, developers, scripters, and anyone else to build the next generation of tooling that makes HEC-RAS the best in the industry. This codebase is large and growing rapidly, so we will be documenting and publishing the more common API calls on an as-needed basis. This is certainly a new path for us, so let us know what you'd like to see supported!
Thank you
The HEC-RAS 2025 rewrite has been equal parts thrilling and exhausting for us. We're excited for the future, but we feel the pressure of living up to the incredible legacy that HEC-RAS v6 will have. In the end, this decision was absolutely necessary for our product to survive and flourish in the modern era. This will be a long journey for us, so we'd like to extend a heartfelt thanks to everyone for their excitement and patience as the newest version of the HEC-RAS software catches up to where it needs to be. Ultimately this is an investment in the future, and it will pay dividends for decades to come.