Projecting in Perspective Viewport / Projecting to a point


I’m looking to project curves from a surface onto another set of surfaces but done so in a non-parallel projection. I understand the project command translates curves in a parallel manner.

What I’m looking to do is translate curves from a curved surface in the “background­” onto a set of curves in the “foreground” of a perspective shot, such that the image is scaled up and appears exactly the same size and shape even though one is closer and one is larger. The trick is that the curves in the background are projected onto a curved plane, and the foreground planes are on an angle to the desired perspective view. Hopefully the photo explains the set-up. The viewer would be standing on the point looking toward the text and read the letters projected onto the corresponding surface in front of them with no distortion.

Essentially I want to project curves as seen in the perspective view (if the viewer was standing on the point looking toward the text) project toward the viewer, with red letters on the red plane and blue on blue. Like a conical projection, or project towards a point.

The trouble with simply rotating the planes so they are over top the letters and translating them in a parallel projection is that if I stand at the desired view, the letters are out of spacing or overlapping on the ends (essentially out of focus). I have tried all kinds of flowalongsrf and pull orientations but I can’t seem to emulate a perfect perspectival projection.

So I thought I’d see if anyone has any thoughts!

Hi naspinall - see if the attached script helps - Save, then drag and drop the rvb file onto Rhino to add



as aliases that run the script, pretty much like a command.

ProjectPersp.rvb (4.8 KB)


Hey Pascal,

A long, long time ago, this was requested as a native feature… Didn’t see this as a wish in youtrack - maybe it can be added?

Thanks, --Mitch

It can indeed… If I can’t find one, I’ll add it.

@Helvetosaur - I changed this one to be visible from out in the world:



Perfect- thats exactly what I’m looking for!

Hi Pascal,

Im wondering if there is a way to run this script on Rhino for Mac…
could this be done?

thanks, Kanto

You can’t run rhinoscripts on Mac. Someone will have to translate that into python…
I’ll add a comment to the YT item.

that’ll be great. thank you

@pascal might have already done that - I seem to recall some requests/discussion on this not too long ago…

There was some discussion on a similar topic here.

1 Like

please let me know if you come across to that again…

Did you check the python script that Lando wrote and linked to in his post above?

My RhinoScript one is linked from


I did finally find my old one, I had thought it was an .rvb which is why I didn’t find it originally, but it’s actually a python script - must have been among the earlier scripts I wrote in Python, as it’s from 2013. I’ll throw it out here, but I have no idea if it still works… (2.6 KB)


Hm. With so many people cooking up scripts for this, it must be a useful thing.


thank you Mitch! it totally works fine.

thanks for the heads up. however this script seems not to respond so well…