Have a look at this library, F(X)yz is an open source
JavaFX 3D library that provides additional primitives, composite objects, controls and data visualizations that the base JavaFX 8 3D packages do not have.
There are several components that may help you. For instance, all the TexturedMesh
subclasses are 3D shapes that allow using mathematical expressions to create contour plots (by using textures).
As an example, have a look at the icosahedron test.
private IcosahedronMesh ico;
private DensityFunction<Point3D> dens = p-> (double)p.x*p.y*p.z;
@Override
public void start(Stage primaryStage) throws Exception {
...
ico = new IcosahedronMesh(5,1f);
ico.setTextureModeVertices3D(1530,dens);
Group sceneRoot = new Group(ico);
Scene scene = new Scene(sceneRoot, 800, 600, true, SceneAntialiasing.BALANCED);
...
}
This short snippet will create something like this:

Now you can add some animation:
long lastEffect = System.nanoTime();
AtomicInteger count=new AtomicInteger();
AnimationTimer timerEffect = new AnimationTimer() {
@Override public void handle(long now) {
if (now > lastEffect + 50_000_000l) {
double t=count.getAndIncrement()%10;
dens = p->(double)(p.x+t)*(p.y+t)*(p.z+t);
ico.setDensity(dens);
lastEffect = now;
}
}
};
timerEffect.start();
and you will see something like this.
You could add on top of the subscene the usual media player controls, and bind them to the animation. Also you can add other animations to rotate the 3D shapes.
So the only thing you will have to add is a way of passing your data files to the shapes... You can add a feature request on the F(X)yz repository, providing some specific format of the data, the shapes you need...
For more information, you can also have a look at this post.