The Magma system provides not one but two noise operators - one that produces a Float noise and another for Vector Noise. Thus, creating a modifier that applies a noise-based offset to mesh vertices is relatively easy.
In this example, instead of trying to recreate the existing Noise modifier, we will create a variation with two options - Noise Along Z and Noise Along Normal. The former is a special case of the regular 3ds Max Noise modifier, the latter is only possible in 3ds Max using Vol.Select, a Noise Map and a Push modifier.
- Create a Plane primitive with 100x100 segments and a size of 120.0x120.0 units.
- Add a Genome modifier, set to "VERTEX" iteration mode.
- Open the Magma Editor and press Ctrl+[O] to create an Output node. Set it to Position channel.
- Select the Output node and press SHIFT+[P] to create a new Position InputChannel node.
- Press [+] to insert an Add operator.
- Select the Position InputValue node again and press [Ins] to switch from [INSERT 1] to [CONNECT 1] mode (see the editor's title bar)
- Press the [/] key to create a new Divide operator with the Position channel as Dividend input.
- Press Ctrl+ to create a Float InputValue with value of 1.0 and connect as Divisor input. Rename to "Scale", check the "Exposed" option and change the value to 50.0.
- Select the Divide operator again and press [F] and [N] to create a Function > Noise operator.
- Press [C] and [V] to create a Convert > ToVector operator. Press Ctrl+[W] to swap the first and second input sockets, then SHIFT+Ctrl+[W] to swap the second and third sockets. This will bring the Noise connection to the Z socket, leaving the other two at 0.0.
- Drag a connection from the ToVector output socket to the Right Value input socket of the Add operator created earlier - this will add the Noise Z Vector value to the Position channel, producing a slightly noisy plane.
- Select the ToVector operator again and press [*] to insert a Multiply operator.
- Press Ctrl+ to connect a Float InputValue to the second input socket of the Multiply, rename to "Amount", check the "Exposed" option and change the value to 50.0.
RESULT: We now have a Noise Plane:
Adding the Normal Option
Now that we have the Z Noise working, let's add the Noise Along Normal option.
- Select the ToVector operator and press [L] and [M] to insert a Mux operator.
- Select the Noise operator, press [Ins] once to switch to [CONNECT 1] mode and press [*] to create a Multiply operator.
- With the Multiply still selected, press SHIFT+[N] to connect a Normal InputChannel node.
- Drag a connection from the output socket of the Multiply to the second socket (Input 1) of the Mux.
- Select the Mux operator and press  to create and connect an Integer InputValue to the third input socket (Selector).
- Select the ToVector operator and rename it to "Along Z Axis".
- Select the Multiply (Noise*Normal) operator and rename it to "Along Normal".
- Select the Integer InputValue, rename it to "Noise Direction" and check its "Exposed" option.
RESULT: A list box with two options will be exposed in the Command Panel. The options will be named according to the names of the nodes connected to the two input sockets of the Mux operator.
Switching the two options will have no effect on the plane because its normals happen to be parallel to the local Z axis. But copying the same modifier to a Geosphere with 64 segments and Radius of 50.0 produces very different results:
Here are some results from layering two Genome Noise modifiers in Normal mode on top of each other - the left one uses 50.0/50.0 and 10.0/10.0 on top of it, the right image shows the top modifier set to 30.0/30.0: