Continuous Bezier-like Surface function

I am working on a procedurally generated environment.
I am trying to come up with a function that creates a “tile-able” set of hills and valleys.
I was going to make a bezier-surface. But I can’t make that tile-able.
I could work with noise maps, but I need a function where I can get a value when I insert a FLOAT, not just INTEGERS.

Could you elaborate on this? I am not sure what you mean. Every parameter is by default a float in materials. In fact to use integers you must use the custom node and do some casting (which is not often done since the result is the same as using a Ceil on a float. the only reason to use ints is for bit shifting in my experience).

Also not sure why you dont think a bezier surface can tile. It can tile as long as the points on either side of the domain are seamless. Ie, they share an invisible point from eachother at the boundary. This is very common in splines.

I don’t have much experience.

It would be great if I could figure out how to get a procedurally generated bezier surface to tile. Unfortunately I’m clueless.