Yep. Spline does the thing. I do need to specify control points and It’s 3D and I only want 2D, but it’s not calculated that often that it really matters, and it’s native, so that’s always a bonus.
Thanks for the help 
And here’s the code for anyone that ever stumbles across the thread.
package com.jayfella.test;
import com.jme3.app.SimpleApplication;
import com.jme3.material.Material;
import com.jme3.material.Materials;
import com.jme3.math.ColorRGBA;
import com.jme3.math.Spline;
import com.jme3.math.Vector3f;
import com.jme3.scene.Geometry;
import com.jme3.scene.shape.Quad;
import com.jme3.system.AppSettings;
import com.jme3.texture.Image;
import com.jme3.texture.Texture2D;
import com.jme3.texture.image.ImageRaster;
import com.jme3.util.BufferUtils;
public class TestSpline extends SimpleApplication {
public static void main(String... args) {
TestSpline testSpline = new TestSpline();
AppSettings appSettings = new AppSettings(true);
appSettings.setResolution(1280, 720);
appSettings.setFrameRate(120);
appSettings.setTitle("Seven Days");
testSpline.setSettings(appSettings);
testSpline.setShowSettings(false);
testSpline.setPauseOnLostFocus(false);
testSpline.start();
}
@Override
public void simpleInitApp() {
Vector3f[] points = new Vector3f[] {
// start
new Vector3f(0, 0, 0),
// point 1
new Vector3f(500, 350, 0),
new Vector3f(700, 200, 0),
new Vector3f(800, 420, 0),
// point 2
new Vector3f(900, 120, 0),
new Vector3f(1000, 320, 0),
new Vector3f(1280, 720, 0),
};
Spline spline = new Spline(Spline.SplineType.Bezier, points, 0.1f, false);
int width = cam.getWidth();
int height = cam.getHeight();
Image image = new Image();
image.setWidth(width);
image.setHeight(height);
image.setFormat(Image.Format.BGRA8);
image.setData(BufferUtils.createByteBuffer(image.getWidth() * image.getHeight() * 4));
ImageRaster raster = ImageRaster.create(image);
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
raster.setPixel(x, y, ColorRGBA.DarkGray);
}
}
for (int x = 0; x < width; x++) {
float px = (float)x / (float)width;
Vector3f point = spline.interpolate(px, 0, null);
int y = (int) point.y;
System.out.println(y);
raster.setPixel(x, y, ColorRGBA.Yellow);
}
Texture2D texture2D = new Texture2D(image);
Geometry geometry = new Geometry("", new Quad(width, height));
geometry.setMaterial(new Material(assetManager, Materials.UNSHADED));
geometry.getMaterial().setTexture("ColorMap", texture2D);
guiNode.attachChild(geometry);
}
}