Skip to content

FAQ

These are the questions people ask before they trust a model to epanet-js. Each answer is short on purpose. The page that it links to has the detail.

Is this really EPANET, or a re-implementation?

Section titled “Is this really EPANET, or a re-implementation?”

It is EPANET. The app writes the model out as an EPANET input file. The Open Water Analytics EPANET toolkit then solves that file, and this toolkit is compiled to run in your browser. View report shows EPANET’s own report text. See What is epanet-js.

No. Open app.epanetjs.com and you can start work. There is no installer, no license server and no plugin.

No. You can open, draw, edit, run and save models as a guest. You need an account for the early-access features, for full-resolution satellite imagery and for anything on a paid plan. Without an account, satellite tiles stop at zoom 16. At a higher zoom the map offers Register to unlock high resolution satellite images. See Accounts and privacy.

The welcome dialog on start-up, with the ways into a project and the demo networks

Where is my model stored? Does it go to a server?

Section titled “Where is my model stored? Does it go to a server?”

It stays with you. The model lives in your browser while you work. Save writes it to a file that you choose on your own file system. There is no project store on a server. Cloud storage is on the roadmap, and the paid plans show it as Coming soon. See Storage and recovery.

An epanet-js project file, .ejsdb. It carries more than an INP does: zones, customer points, custom attributes and scenarios. That is why it is the working format. To make an INP, use File > Export. See Projects and Import and export.

Yes. On import the INP becomes an epanet-js project, and it does not stay an INP. The first time, a File format updated notice explains this. A Partially supported features dialog lists everything that the importer cannot carry across, so you see the gaps immediately. The app rejects an INP with no coordinates, or with coordinates that it cannot read. It shows Coordinates missing or Invalid coordinates instead of a partial import. See Open an existing model.

A current desktop browser. The map needs WebGL, and the app tells you plainly when it cannot start WebGL. Two other things vary by browser:

  • Recent projects on the welcome dialog needs the File System Access API. Today that means a Chromium browser (Chrome, Edge, Brave and the rest). On other browsers the welcome dialog shows the demo networks.
  • A run needs browser storage, and private and incognito windows block that storage. In one of those windows, Simulate explains why the model cannot run.

The app is built for a desktop-sized window. On a small screen it warns you before you start.

Edits and runs do not depend on the network, because the model and the engine are both in the page. The base map does depend on it. When the connection drops, a No internet connection notice appears and the map switches to Map offline mode. Connection restored! tells you when the connection is back. While you are offline, map tiles that you did not already load do not appear.

There is a free plan, and there are paid plans. The Upgrade dialog splits the plans by how you will use the app. A switch between Commercial use and Non-commercial use changes which three cards you see. One side shows Free, Pro and Teams. The other side shows Free, Personal and Education. These features sit behind a paid plan: scenarios, custom map layers, zones, the pipe library, custom attributes and custom elevation sources. See Plans.

The Upgrade dialog, showing the plan cards for commercial use

Is there a free license for students and teachers?

Section titled “Is there a free license for students and teachers?”

Yes. The Education plan costs nothing, and it carries everything that the Personal plan carries. You register with a student email address through Use student email on the Upgrade dialog. If the address does not validate, that card links to the help for it. See Education.

No plan limits the size. No limits on sizes is one of the listed features of the free plan. The real limit is the memory of your browser. A very large extended-period run can still end on an Out of memory dialog. That dialog suggests a new run with fewer timesteps or a smaller network. See Running a simulation.

The interface comes in seven languages. You choose one from Language in the menu bar, and on the first visit the app detects it from your browser. Numbers follow the decimal and grouping symbols of your locale. Five of the seven languages are marked as beta: Portuguese, French, Dutch, Japanese and Indonesian. While one of these five is active, the welcome dialog says so. See Languages.

The language menu open, listing the seven interface languages

What does epanet-js have that EPANET does not?

Section titled “What does epanet-js have that EPANET does not?”

Zones, customer points, custom attributes and scenarios have no EPANET equivalent. The map itself has none either: a real background map, satellite imagery and your own GIS layers under the network. The app gets elevations from terrain data as you place nodes, and you do not type them in. Each of these has its own page: Zones, Customer points, Custom attributes, Scenario work, The map and its layers and Elevations.

Write to support@epanetjs.com, or open an issue on GitHub. Say what you did, what you expected and what happened instead. For something that is missing rather than broken, the Roadmap entry in the Help menu opens the public roadmap, where you can upvote an entry and comment on it.

The source of the app is under the Functional Source License (FSL-1.1-MIT), and each commit becomes MIT two years after it lands. That license permits personal, research, educational and internal use. In the meantime it does not permit you to repackage the app as a competing product. The Open source entry in the menu bar links to the repository.