anchor.diff:  
   uniform_walk(_Id, X, Y, P = #payload{pos_noise = N}) ->
     {
  -    X + math:sqrt(N) * uniform_noise(),
  -    Y + math:sqrt(N) * uniform_noise(),
  +    X + math:sqrt(12.0) * N * uniform_noise(),
  +    Y + math:sqrt(12.0) * N * uniform_noise(),
  +    P
  +  }.
  +
  +normal_walk(_Id, X, Y, P = #payload{pos_noise = N}) ->
  +  {
  +    X + math:sqrt(N) * normal_noise(),
  +    Y + math:sqrt(N) * normal_noise(),
       P
     }.
   
  
positive.code:          circular/4,
           linear/4,
           uniform_walk/4,
           compose/2
          ]).
  
  
negative.code: 
  uniform_noise() ->
    random:uniform() - 0.5.
  
  % naive-ish box-muller transform
  normal_noise() ->
    U1 = random:uniform(),
    U2 = random:uniform(),
    math:sqrt(-2.0*math:log(U1)) * math:cos(2.0 * math:pi() * U2).
  