I'm looking for flow accumulation open source implementation ( C++ or C# would do, Python no), on Windows, preferably the source code comes with Visual Studio project files so that I can just build and run immediately.

This is my actual problem statement:

I have a terrain ( in the form of mesh/element), and I want to indicate how the water flows in the terrain, subjected to gravity force and the terrain condition ( of course).

A crude way of doing this is to take every single mesh element, then draw the water flow direction from the highest point to the lowest, but I think this will result in a lot of ugly arrows that although can roughly point towards the correct directions, but really don't look nice when view as a whole.

I've asked this question at Computational Science Stack Exchange, but I reask here because I wonder whether there is any other flow accumulation option besides RichDEM, which I've some trouble with because I am not familiar with GCC compiler used to compile it, and also because I'm not too familiar with the R tools.

  • Would an open source D8/Dinfinity/FD8 flow accumulation tool implemented in the Rust language do? If so, see here: github.com/jblindsay/whitebox-tools/tree/master/src/tools/… Jun 7, 2018 at 13:22
  • @WhiteboxDev, don't think so, because I would want to distribute it to other Windows machines too; I can't just simply install python or Rust runtime so carefreely
    – Graviton
    Jun 7, 2018 at 13:24
  • Rust doesn't have a runtime. It creates stand-alone compiled binaries the same way C++ does. Your users don't have anything to install. See here rust-lang.org/en-US for more details. Jun 7, 2018 at 13:25
  • Take a look at the Windows download of the WhiteboxTools library here: uoguelph.ca/~hydrogeo/WhiteboxTools/download.html Specifically see the D8, DInfinity, and FD8 flow accumulation tools. There's also tools in there for hydrological preprocessing. Jun 7, 2018 at 13:28

1 Answer 1


For the time being I'm sticking with TauDEM. Written in C++, it exists as command line utilities.

It contains D8, DInf implementation, which is sufficient for me needs, for now.

Since the source code is available, one can also take the source code and build it into a library.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.