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?
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.
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 to achive this. but my geometry is not a continous smooth surface. At the moment i have a “facettet” lens that looks like this:
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.
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)