algorithmic modeling for Rhino


I'm trying to create a Waldram diagram. I have code that creates curves that almost match it, but not quite.

The Waldram Diagram has an X and Y axis with values which both represent degrees. I believe one of the curve's formula is some variation of y*sin(x), as every Y value at 0 x is equal to itself (sin of 0 is 1). The other seems to be a variation of y*cos(x), as every Y value at 0 is equal to 0 (cos of 0 is 0).

Oddly enough there isn't much information online that I could find explaining how to plot a Waldram diagram. I have attached a picture of what I currently output, my desired output, and my code (zip file with visual studio solution).

Thank you!

Views: 3471


Replies to This Discussion

My grid goes to 70, but I mean the top Y value goes well above the grid. It should only go 10 above the grid. The diagram's top Y value caps out at 80

In case I'm not being clear, the very last curved line should have a maximum y value of 80, which should appear 10 above the grid's final line. The second from the last curved line should appear exactly at the top grid line, which is a value of 70

I think you are misunderstanding something. With this equation

P = 1-(COS((2*(DEGREES(ATAN(TAN((a)*PI()/180)*COS((b)*PI()/180))*PI()/180)))))

a ranging from 0 to 90° 

b rangin from -90° to 90°

P is always between 0 and 2. 

What you see on Waldram graph is a curve label not an ordinate ! 

I did multiply by 45 but it was just to fit an Image I put on a Rhino file. 


Laurent, I see what you mean now that I have the image overlay. 

I was hoping that the equation would yield exact degree results, but I see what you mean now that you said it is a curve label not an ordinate.

Is the only way to verify that this is correct to overlay it onto another image? Or do you suppose there would be some constant / formula change to yield exact results of a y of 20, 30, 40, 50 etc.?

The reason I want to check is that the image matches the formula perfectly, but the image was supplied by the same person who gave us the formula. Other diagrams exist, and while they look the same I wanted perfect proof

Jed Lankitus, I just tried Laurent Delrieu definition against the Waldram provided by my municipality and it seems that there is too much of an "S" to the curve. Your initial script seems to follow the flatter near zero plots required by my chart. Maybe you can apply a manipulating multiplier, similar to the way Laurent Delrieu was using a multiple of 45 to accomplish correlation to the graph he was using.. That is what I did to get the divisions accurate. You can see my results below. 

 Dimitar Baldzhiev, it seems you have it figured it out from the looks of it in your video: Can you please share?


This is a "bullshit curve"! And this is a proof of concept script. :D I traced a paper copy of a Waldram scheme leaving the exact scientific definition of the curve for later. So, unfortunately, it will not serve you any purpose... The rest of the script is quite quick in my opinion (the evaluation of a change in the design is near-real-time).

Please share your work as well so we can assemble a complete script eventually. Thanks!


Wow what a script! We are planning on actually going to NYC zoning and trying to get an answer on this one. Seems really immoral to me to have a small group of people checking diagrams to be correct and holding on to the formula for themselves so that we are dependent. I'll keep you updated, thanks for the help

I know this is a bit late...But I noticed your script output has a few fields labeled 'dummydata'. Were you unable to get the scoring for every field because of the tracing?

As a status update I still don't know the real formula...

No "dummydata" is just a placeholder because I did not develop all parts of the scoring logic. As I said, I started this project for somebody else but quickly figured out that I will not get paid, therefore development stopped. This was just a demo proving that the task is possible and a presentation of my skill for the aforementioned "guy".

The traced Waldram Diagram has nothing to do with the scoring. As a matter of fact I am quite sure that the traced diagram and this script is much more accurate than using pencil and paper. (I have no ideal how this is actually done, I have never designed anything in NY, hell, ... I have never been to USA)

As far as I remember, all the input data required for accurate scoring is already in the script. It is just a matter of neatly ordering it and maybe counting some blocks or applying a formula for the count. The raw counts are there, it is just a matter of picking the right ones.

Also I have not done much bugfix work and edge case tests. The script is probably quite buggy if bombarded with different input data.

I would love to co-develop this but so far I have been quite busy and have no time for side projects. However I am happy to provide support and to untangle that script I did in 2015 :D

That does look similar and maybe is in the underlying formula, thank you for the tip! I don't know if I'm smart enough to exactly correlate the two though...yet

Thanks for the good suggestion. I worked this method backwards (recalling my limited high school level trigonometry) and got this formula

I think it looks closer to the NYC Waldram diagram at least in the shape of the curves. However the spacing between droop lines is constant at b=0 for every 10 degrees, rather than spacing out as you go higher. I think they probably have another factors multiplied to the result but I still can't figure out what that factor is. Looks like a tangent of something if I have to guess.






  • Add Photos
  • View All


  • Add Videos
  • View All

© 2022   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service