< All Topics

Introduction to Muk3D

This chapter provides a high level overview of Muk3D including how to accomplish simple tasks such as setting up project files, importing data, creating dams, calculating embankment and storage volumes, creating outputs, etc.

This tutorial relies on the “Pine River Hills” sample dataset provided when you set up Muk3D.
Refer to the section outlining the Muk3D user interface for an explanation of the various interface components.

The downloadable PDF document can be found below:

Opening a demo project

Open Catapult and click on the Create demo project dropdown menu.  Select the PineRiverHills dataset.


Next, tell Muk3D where to create the demo project.


In this instance, a folder called PineRiverHills will be created in the directory d:\Muk3D\Training.  All project files will be within the PineRiverHills directory.

The project will be loaded and the project explorer will point towards the files &amp; directories in the PineRiverHills project directory


Load base dataset

The first step is to create a base topographic grid to use for modelling.  In this example, we’re starting off with a set of xyz points that came from LIDAR survey. 

To load the LIDAR data, simply drag and drop the LIDAR_survey.xyz file into the 3D window.

mceclip18.pngMuk3D can import many different file types.  Some are imported through drag and drop, whilst others need to be imported using tools in the Data Import menu.  Recognised file types will be automatically loaded when dropped, otherwise nothing will happen and another means of importing the file will need to be used.

mceclip3.pngWhen an XYZ file is imported, a point cloud is generated in the 3D window.

The basics of navigation in the 3D window with the mouse are:

Left-button dragOrbit
Right-button dragPan
Mouse wheel scrollZoom in/out

Some basic key commands are:

Key commandDescription
rReset view (same as View/Reset view menu command).  Shows all geometry and resets to plan view.
pPlan view without zooming to all (same as View/View on axis/xy)
wWireframe representation of surfaces and grids.
sSurface representation of surfaces and grid.

Before we create a grid, we’re going to create a triangulated surface from the point data.  To do this, we’re going to run the command that will generate a triangulated surface from the point cloud.

Create a surface


Ensure that the Source data is set to the LIDAR data layer.  Hit OK, and a new layer will be created containing the triangulated surface.


Save the new surface by selecting the layer in the Scene Manager and running:

File/Save current layer

This command will save whichever layer is selected in the Scene Manager. 

mceclip18.pngYou can also save a layer by right clicking on it in the Scene Manager and selecting Save from the popup menu.

When the layer is saved, you’ll notice that by default it is saved into the directory selected as the Working Directory in the Project Explorer. (The working directory is highlighted in red and has “(Working)” next to it).

Also, when a layer is saved for the first time (i.e., it was created and not loaded from disk), the file type will default to the Muk3D file extensions.  Unless you have a specific need to save as another file type, it’s always recommended that you use the default Muk3D extension.

mceclip18.pngIn Muk3D, the Save commands are really “Save as”.  The option will always be given to rename the file prior to saving it, and the file will never be automatically overwritten unless you explicitly tell Muk3D to do so.

Now that we’ve created the surface, the LIDAR data is no longer required.  We could hide it (by selecting the visibility check box in the Scene Manager) but this will still mean that the data is loaded into memory.  Instead, once we’re done with a layer it should be unloaded.  This can be done by selecting it and running the command:

View/Unload current layer

Alternatively, you can right click on the layer and select Unload this from the popup menu.
Since this particular terrain is quite flat, the vertical scale can be exaggerated to allow the surface to be seen better. On the toolbars, there is a text box/dropdown labelled Zx. This is the Z exaggeration control. Either select a vertical scale from the list, or type your preferred vertical scale in (if, for example, you prefer a vertical exaggeration of 3.5)


Gridding the surface

While triangulated surfaces can be used for a number of functions in Muk3D (contouring, sectioning, refining), most of the modelling is undertaken using gridded surfaces.  Grids in Muk3D are based on a uniform XY spacing (square grid elements), and spacing is constant over the entire gridded surface.

All commands for creating and manipulating grids are located in the Grid menu.  To create a grid from a triangulated surface, run the command:

Grid/Create/Create grid from surface

This command will take the surface and size the extents of a grid so that it covers the entire surface.  Any grid points that fall outside the surface (i.e., if the surface isn’t rectangular) will be hidden (masked).

[insert image here]

mceclip18.pngChanging the origin of the grid is not recommend as it might cause the grid to be created in a location that misrepresents what you’re trying to represent.
LayergridThe name of the grid layer that will be created.
Spacing10The user specified grid spacing to use (m/ft)

When creating grids, the main input provided by the user is the grid spacing.  Selection of an appropriate grid spacing is important from the point of view of representing structures adequately (e.g. dam crest width) as well as ensuring that containment structures are represented fully (closed containment at the crest elevation).  Larger than appropriate grid spacing is also visually unattractive, with dam crests appearing jagged.

Smaller than required grid spacing slow down processing times.

mceclip18.pngFor more details about selecting a grid spacing, see the tutorial.

In this case, we’ll use a grid spacing of 10m.  Hit OK and the grid will be created.  Each point on the grid will be assigned the elevation of the surface at that point.

Once the grid is created, unload the triangulated surface and save the grid layer.

Build a dam shell

The next step in is to create a dam shell on the gridded topography and calculate the fill volume.  Muk3D has a number of tools for creating dam shells, depending on what data is available.  If you already have centrelines (imported from CAD for example) then a dam shell can be created using that alignment.  Otherwise it’s easy to draw an alignment to use for the dam.

In this example we’ll draw the dam alignment ourselves, using the following command:

Structures/Dams/Draw a dam

This command lets you define the dam geometry and draw an alignment, then the resulting shell will be created.


The following data should be used for the dam design:

Crest elevation115mAssumes that the dam crest is horizontal.
Crest width20mSince the grid is 10m, the dam crest should be adequately represented. Remember however that the grid spacing should be selected with due consideration to the intended dam geometry.
Shell height (left & right)50mThe height of the dam shell needs to be such that it completely intersects the underlying topography.  Note that this is not the height of the dam.
Left slope4This is a 4H:1V slope on the left hand side of the reference line in the direction in which it was drawn. 
Right slope2This is a 2H:1V slope on the right hand side of the reference line in the direction in which it was drawn.
mceclip18.pngSeveral commands in Muk3D will refer to the left and right slope. Left and right relate to the side of the alignment line being used, as it was drawn. These commands do not refer to upstream and downstream as these are terms that can only be applied once the final structure is considered against the surrounding topography.

Hit OK and you’ll be prompted to draw a dam alignment, which in this case will be the crest centreline.  When you draw the dam alignment line, a transparent red plane (‘Elevation guide’) will be shown at the target crest elevation. This helps the user to ensure that the dam alignment centreline ties in with the abutments. An example is shown below.

mceclip18.pngTo ensure complete closure of the dam at the containment elevation, it’s a good idea to start the alignment at a location that is below ground (i.e., outside the red plane), and finish it below ground.  Any parts of the dam below ground will be ignored when performing volume calculations.

Once you’ve drawn the centreline, press the Space bar to finish drawing.  The dam shell will then be drawn automatically (example below), and the centreline and dam shell will be added to the Scene Manager as new layers.


In the Scene Manager, you’ll notice that some layers are red, bold, and italic.  These are layers that have not yet been saved, or have been modified since they were loaded.  Muk3D does not automatically save layers, so it’s up to you to save any files you wish to keep.


The first thing to check is that the specified dam slopes are on the intended sides of the dam.  If they are the wrong way around, unload the dam shell, rerun the command and either draw the line in the opposite direction, or reverse the left-right slopes in the dialog. 

It’s also imperative to check that the dam shell fully intersects the base grid (see image below – shell doesn’t penetrate the topography). If it doesn’t, whilst the volume calculations will still work, they won’t be accurate because the dam footprint won’t be properly represented.


Once you’re happy with the dam shell, you can then calculate fill volumes. 

Basic volume calculations

Calculating the fill volume for a dam shell can be done in a couple of ways. 
The first is to calculate the volume between a grid (the base topography grid) and a surface (the dam shell), using the command:

Grid/Volumes/Volume between a grid and a surface

This command lets you calculate either the cut volume (volume below the base grid and above the surface), the fill volume (volume above the base grid and below the surface) or the total volume (net volume above/below the surface, to the grid).

For a dam you’ll want to calculate the fill volume. When prompted, select the base grid and the surface by clicking on each.  The resulting volume will be written to the Output Window.


This volume is the total volume enclosed above the base grid and the below the dam shell, i.e., the dam fill volume.

mceclip18.pngVolumes can be impacted by grid spacing and structure size.  Please refer to Selecting grid spacing for a discussion on volumes & grid spacing.

If you wanted to create a fill-volume vs elevation curve for the dam shell filling, you can calculate the horizontal slice volume vs elevation for the shell above the base grid using the command:

Grid/Volumes/Create peels between grid and surface

Output filenamepeelsA file  name called peels.securve.csv will be created in the working directory.
Interval1mVolumes will be calculated for slices 1m thick between the lowest elevation and highest elevation that the enclosed space between the grid and the surface exist at.
Which volumeFillLook for volume above the base grid and below the selected shell.

Again, you’re interested in the fill volume (created above the base grid and below the dam shell).  When prompted select the base grid and the dam shell by clicking on each. 

This command will then calculate the slice volumes and a CSV file will be written to the current Working Directory.  If a file with the same name already exists in this directory it will be overwritten.


Another way to calculate the dam fill volume is to simply merge the dam shell into the base grid. This can be done using:

Grid/Merge/Merge dam into grid

This command will take the selected base grid and dam shell, and change the elevations for the grid to reflect the elevation of the dam shell at each grid point, where the dam shell is above the base grid.  Where the dam shell exists below the elevation of the base grid, the base grid will remain unmodified.


When prompted, select the base grid and the dam shell (by clicking).  The resulting fill volume will be automatically calculated and written to the Output Window.


If you hide all layers except for the base grid (by toggling the visible flag in the Scene Manager) you will see that the dam shell is now part of the grid. 

mceclip18.pngWhen structures are merged into a grid, the grid is modified to reflect the structure elevation.  The previous surface elevation has been ‘forgotten’ by the grid.  Grids always reflect the upper/lower-most elevations of what is being modelled.

Save the grid with the dam merged into it.  When you save the layer, make sure that you don’t overwrite the base grid layer.  You always have the chance to rename layers when you save them, so give this a unique name such as “grid+dam”.

You’ll also notice that another layer was created called “footprint”.  This is the outline of the dam shell on the base grid.  You can use this to calculate the plan or membrane area of the dam footprint, and it has some other uses as we’ll see in the next stage of the tutorial.  Save this file for later use.

Once you’ve saved the layers you need, unload all files.  Instead of removing them individually, you can use the command:

View/Clear graphics

You’ll be prompted to save any layers which have not been saved (or modified since it was loaded), or you can discard all unsaved layers.

Calculating pond volumes

Once we’ve got a topographic surface with a dam built into it, we can create a pond and calculate the volume of fluid that can be contained in the pond by running:

Structures/Ponds/Create Pond surface

mceclip18.pngBoth the Ooze and Surface Water modules have advanced conventionality for the creation, manipulation, and reporting of a pond surfaces.
Pond elevation113mElevation to crest pond surface at.  Since the dam crest was at EL115m, we will calculate the capacity 2m below the dam crest.
Calculate volumeCheckedIf checked, the volume of the pond will be calculated, otherwise just the pond surface will be created.

Hit OK, and when prompted, select a point that would be inside the pond area.

mceclip18.pngIf a point outside the pond is selected a warning will appear saying that a pond can’t be created.  Similarly, if the pond elevation is higher than the containment (dam) elevation, or there are holes in the dam (due to inadequate grid spacing or narrow dam structures) a warning will appear indicating that the pond can’t be created at the target elevation. 

The pond surface will be created and added to the scene, and the pond volume will be written to the Output Window.


To develop a storage volume vs elevation curve for the pond, use the following command:

Grid/Volumes/Create basin peels

This command will calculate the volume for horizontal slices inside the selected basin, from the lowest elevation through to the high elevation you nominate. This can be used for calculating the maximum pond volume (versus elevation) without the Ooze or Surface water modules, and also to develop the storage elevation curve for the above example using the Ooze module.

The command also calculates the surface area of the pond, at the upper value of each elevation interval.


Maximum storage elevation115mThe volume-elevation curve will be calculated all the way to the top of the dam.  
Interval1mVolumes will be calculated for slices 1m thick through the basin.
Basin namebasinA file called basin.SEAcurve.csv will be written to the working directory at the completion of the command.

Hit OK, select a point inside the basin, and when the command is completed, the file basin.SEAcurve.csv will appear in the Working directory and a ‘Click to copy’ hyperlink is also written to the Output window.


If we right click on the basin.SEAcurve.csv file and select open, the file will open in Microsoft Excel. If we click on the hyperlink the results can be pasted into excel.

Creating screenshots

Once you have a basic dam and pond that you are happy with , the next step is to create snapshots showing the base grid, the grid plus the empty dam, and then finally the dam full of water. To do this we’re going to use some of the tools in Muk3D and Tex to incorporate aerial imagery, fix a camera position (so that all snapshot images are taken from the same location), and save the various screenshots.
Clear everything from graphics (View/Clear graphics) and load the base grid created earlier.

To save a snapshot of the surface, you can either use your favourite screen capture software, or the following command in Muk3D: 

View/Copy screencap to clipboard

This command will save an image of the 3D window to the clipboard, making it easy to paste it into presentation software or a word processing document.  An image of the 3D window can also be saved to the Working Directory using:

View/Save image

To make our surface look real before taking snap shots we can easily overlay georeferenced airphotos of our site.

In the Imagery directory (this will be a top level directory in the Project Explorer), there are files called prh.png and prh.pgw. This is a georeferenced air photo, and you can drag and drop the PGW file into the 3D window, where you will then be prompted to select a surface to apply the air photo to (i.e. the base grid).

mceclip18.pngIf you drag the PNG file instead of the PGW file, Muk3D will take that image and tile it as a texture over the surface, and does not produce the desired imagery.   

Saving & restoring viewpoints

If you are taking snapshots in any view except plan view (after a view reset), it will be virtually impossible to return to the same camera location to take a series of snapshots of different images and not have them misaligned. 

In Muk3D you can save view locations and return to them at a later time, so that each screen-capture is from the same vantage point.


Set the 3D view to be your preferred viewpoint and then run:

View/Viewpoints/Save current viewpoint

Enter a name for the view location and press OK.  Now, if you reset the view, you can return to this location using either the toolbar dropdown menu:


or by using the command:

View/Viewpoints/Restore viewpoint

This will bring up a list of saved viewpoints from which you can select the desired location to return to.

mceclip18.pngCurrently viewpoints should be restored using the same vertical exaggeration that was used when they created. If a viewpoint was created at a different vertical exaggeration, when its restored at a different vertical exaggeration the results will not be as expected.

Create a georeferenced overlay

The next step is to take a snapshot of the base grid with the dam shell integrated into it.  Clear all layers from graphics, and then load the grid with the dam shell merged into it.  Drag the air photo georeference file (PGW) into the 3D window and select the grid when prompted.


You’ll see that the air photo was overlaid correctly, however there is no distinction in the photo to represent where the surface has been modified by the dam shell. 

To fix this, we will use some tools in the Tex module to take the air photo and add a colour or texture in the region of the dam so that it will be visually different from the surrounding topography.

In an earlier step, you saved the dam footprint (the layer footprint created after the dam was merged into the base grid).  You will use this file as the outline within which to shade the air photo a different colour, using the command:

Tex/Create/Append overlay with colours

Base image./imagery/prh.jgwThe base image to append the new outline on.  Note that it’s the georeference file that is selected and not the image file.
Output imageAirphoto+damThe name of the new image file to create that is a blend of the airphoto and the outline of the dam footprint.
OutlineFootprint.mcurveSelect the file that the footprint was saved as in an earlier step.
Colour Choose a colour for the dam to be shaded

Press OK, and two new files will appear in the working directory.  One will be called airphoto+dam.jpg and the other will be airphoto+dam.jgw.

Drag the JGW file into the 3D window, select the grid with the merged dam in it, and the new overlay will be applied.  Now the dam will be visible as a different colour to the rest of the overlay and it is now clear that it is a new feature.


Return to the saved viewpoint (either View/Viewpoints/Restore viewpoint, or the dropdown menu on the toolbar) and take a snapshot (View/Save image or View/Copy screencap to clipboard).
The final snapshot to take for now is the dam with the pond surface.  Load the pond surface that you saved earlier, return to the saved viewpoint, and take a snapshot.

Table of Contents