Modify surface with galapagos so normals hit 1 specific point

Hi everybody
I am trying to create a surface where all the normals of the surface hit one specific point. yes i know that means this would just be a part of a sphere and the point would be the center of the sphere. But this is just a simplified version of what i want to achive.

i tried doing this with galapagos and getting there. Do i have something wrong in my script or do I have to wait longer or does that not even work with galapagos?
Does anybody have any experience with something similar?

galapagos_modify surface so normals hit specific (13.0 KB)

thanks for any help :smiley:

Your problem doesn’t really fit well for this approach.

Galapagos basically tries to find the local extremes (min or max) of the fitness function.

You will obviously get a pretty good hit with a basically flat surface. Once you start to move individual points, the normals may diverge wildly. Since Galapagos will randomly vary individual genes (points in this example) the chances to get a better result are pretty slim because that would require to move the surrounding points in a similar fashion.

ah ok good to know
Thanks :slight_smile:

Since for the basic question you provided the answer … what are you trying to achieve?

in my case it wouldn’t be the normals that would need to go to a certain location but curves that are defined by a function (the refraction of light - sin(alpha)/sin(beta)=n2/n1=


so as shown here in this diagramm. i have paralell light incoming and i want to find a geometry that “bends” light the way i want it. Let’s say lightray 1 has to go to dot1 (on the right) and so on. How would the geometry have to look to achive this.

I managed partly (with a lot of your help actually :rofl: to achive this. but my geometry is not a continous smooth surface. At the moment i have a “facettet” lens that looks like this:

now i am wondering if it is at all possible to manage to get a smooth surface.

But if galapagos is not a suitable solution i am running out of ideas to do this :rofl:

Hmm … a sequel on this?

1 Like

jup :slight_smile:

what you’re doing here is some sort of inverse Fresnel lens system. If it were a 2D version, you could just push the individual prisms back into place to form a continuous surface.

Now since you are in 3d and you don’t control any continuity constraints between neighboring cells, you end up with some pretty hard jumps.

Fresnel lenses reduce the overall thickness of the lens while introducing some optical errors at the prism edges. The error is minimized when the input ray is always parallel to the shifted edges of the rings (or prism cells borders in your case).

Once you start to smooth out your prim cells, the optical error will increase. Which is basically, why your definition doesn’t really work.

To get good results, you would define locally smooth regions, that focus light to your different targets and then minimize the area that is needed to blend the areas to minimize the total optical error.

thanks for your input

I also have a version of a normal fresnel lens. the one in the post bevore was just an attempt to get closer to a smooth continous surface. but not very succesfull. because as you say. in 2d i can just move them and let them continue. but it doesn’t work in 3d -> see the big gaps on the lens in the post bevore.

here is my fresnel lens ( you are right they are thinner wich can under some surcumstances be practical)

yellow light is paralell incoming light

you don’t happen to have any brilliant ideas how to go about this idea?? :rofl:
I’m a bit lost


I’m curious, did you ever find a better way of going about this, without using galapagos? I’m trying to do something similar, though with sound reflections.

Your thread disappeared mysteriously yesterday, try to post that again?

It went under review for a bit, since I am a new user I suppose.

for future references: Let’s connect the topic you mentioned and mine, which is also similar in nature.