Homographic transformation

Hi all,
Any idea on creating an homographic transformation with Rhino?

Thank you,
stay safe,
Pablo Jeremías

Hi Pablo - without doing any more looking for just what that is, exactly, it looks like in this example, FlowAlongSrf might do what you want.
Make a surface from corner points (SrfPt) for the two shapes, and then FlowAlongSrf the circle from one to the other.


it may be something related to “perpective match”??

Thank you Pascal.
The point is that Rhino draws an incorrect result (Photoshop does it right):

Blasetered… yep, must be but I don´t know how it works

You can use any of these methods, although I can’t tell which is correct.
it seems that different results are obtained with each tool.
in addition to that, I also noticed that its transformation is not properly homographic

something like this? I don’t know if it works, never heard of homography transformations before

Thank you very much guys for trying to help me.
It doesn´t work:

1 Like

HI, You can try the command Taper
Although I would like to control this tool from the corners as if it were a cage edit respecting the characteristics of the command. :slight_smile:

it seems that it will not work for you either there is always a certain degree of deformation, not the same as in your example

I’m not familiar with this transformation either.
You mentioned using Photoshop.
Is this a “2D” transformation?
If so, I’m confused as to how you would use a 3D modeling tool to recreate a 2D transformation.
Not my area of expertise for sure.

Hi @pablo.juan,

Is this what you want? It matches the ‘correct: homography’ image you posted.

Good ol’ technical drawing from before all this new-fangled CAD stuff. This is basically a two point perspective construction.



as @jeremy5 says, this is using make2D from a 2 point perspective. I don’t know how useful is this.

I had posted a plugin on message 12 of this thread that creates the Homographic (Projective 2d) transformation.
Sadly, the plugin looks to need an update before it will work properly in Ver 6. The Rhino 5 version still works well.
Behind the scenes, the plugin employs a technique similar to what Jeremy demonstrates above.
It refines the technique to maintain the fidelity and complexity of the incoming geometry.

This plugin was a port from a AutoCAD version that still sits on the shelves of the Exchange.

Granted, none of that may sound particullarly appealing - unvetted code and all. If possible, post some geometry. Let me demonstrate what the plugin can do, at least.

1 Like

Thank you everyone again!
Vikthor: thanks, interesting command
John: yes, it is a 2d transformation. Photoshop is not precise. I use a plugin for AutoCad that it has been created by a coleague of my university:

Jeremy: exactly, that is it
Diego: yep, this is the idea. But, as I am not a “pro” with Rhino, I was looking for a “more direct” command
Seant:Woooow, the community and the world need that update to Rhino 6 XD. I don´t need to transform anything becouse, as I have written, I have the pluggin in AutoCad. But thank you very much. If you get the update of your plugin I will use it a lot!


I should perhaps point out that the target quadrilateral is not a valid transform of the square for a 2pt perspective projection (I don’t know if it would be permissible in other types of homographic transform).

The problem lies in the dimensioning of the ‘near’ and ‘far’ sides which is inconsistent. Here’s a version with the item redrawn to be consistent by using the same dimensions for each side and depicted in blue:




Actually, the ‘near’ and the ‘far’ sides do need to be prorated based on the projection differential. See attached:
Projective.3dm (391.4 KB)

Also, I’m sorry to say, the version 5 compatible plugin I linked to above is not working as well as I thought.
Definitely in need of some debugging.

Yeah, that is what my first drawing showed. Giving you a combined transformation: a 2pt perspective projection and a 1d scale.


Wow! super interesting comments!
I agree, Jeremy: your two results (blue one and white one) corresponding to change the angle of the proyection plane… both of them are correct and homographies: but only one valid from the point of view of 2pt perspective proyection.
Anyway, I will wait for Seant to fix his plugin :)) becouse the homographies that I need are relations between two cuadrilateral shapes with a lot of curves inside (not only a circle)
Kind regards

1 Like

Hi Pablo,

I’m working on a plugin for laser projection with a function for view calibration. So I think it should be possible to inverse the view transformation - at least for planar geometry. But this works with standard projections, I have not tried with 2pt perspective.

Have a look at the attached, maybe it helps. If you can describe your workflow I may try to develop something.

Regards, Jess

homographic_transformation_jm.3dm (54.6 KB)

So beautiful Jess. Congratulations!
It would work perfectly… and very didactically.
The only condition to create homographies is to link four pairs of random points. A - A´, B - B´, C - C´, D - D´. If you get this… it is done. In Photoshop (in spanish) the command is called “distorsionar” -edit-transform-distort-
Kind regards and thank you