Download

Help: Unreal Engine for simple Scientific Visualization

Hello everybody, not sure if I am in the right section of the forums (sorry mods), but I need a little advice.

I am a student and I work with molecular dynamics simulations (simulate interactions of thousands of atoms, Molecular dynamics - Wikipedia). I know fairly well Python, C and C++, and I need to write a program that, given a text file with all the x,y,z coordinates of atoms, shows these atoms in space.
I know there exist libraries and programs that already do this (like Ovito or VMD), but I wanted something that works on all platforms (Win, OSx, linux, but also on mobile devices).
I thought about Unreal Engine only because of my need for a multi-platform development, and I know that what I have in mind is really simple and rude, like killing a fly with a shotgun. But I am honestly tired of writing code on, say, Linux, fighting with libraries, make it work and then have to rewrite everything from scratch for another OS.
Basically what I need to do is a “game” with a starting menu where you can load a file from a folder and then a visualization windows where all the atoms drawn in space (just many spheres), with controls on parameters like lights, colors, textures, while the scene can be zoomed, dragged around and rotated. Something like what the program Ovit does (http://ovito.org/).

Is this project too stupid to be constructed with such a powerful tool as UE4? Can someone give me a hand on how to start everything? As I said, I know enough C++ (for my scientific computing), so I will be grateful if you could just give me a hint on how to start making the initial menu, the loading of a file and the association of spheres to the coordinates (that are stored as arrays from the text file), or give me a link (I swear I googled before asking here, but who knows I may have missed something). I have no problem writing the code, without blueprints, but I can not understand how to start (and whether to start at all with UE4 for this task).

Thank you in advance for every feedback.

To be honest, it would probably be easier to do that with Unity–while UE4 can do it, you would have to mess with a bunch of things to disable stuff that you don’t need. For just displaying some quick 3D stuff it would be very easy in Unity to setup something that just reads an XML file and places the objects at a location, or to even do that with particles. If you know C++ then you’d probably be able to get a handle on C# very easily.

That being said, if you want to get more in-depth in the future, then UE4 is more complete and it might be useful to get into it now if you have other projects you would like to work on.

Not at all.

Unfortunately since this project is so custom, there isn’t a good template for you to look at. However, you may want to just play around with the Shooter example and look at the code just to get a feel for the engine and how things work (Creating Actors, Camera setup, etc). Other than that, I can at least point you in the direction of what you’ll need to investigate in the various areas (YouTube is probably going to be your best friend).

This will be UMG. There should be plenty of tutorials on creating a Main Menu. A quick search found this one.

If it’s just a simple CSV, you could look at Data Tables.

You could just new up some StaticMeshComponents that use a sphere model. The shooter game should have an example of this for the bullets it fires.

That’s going to require a Dynamic Material Instance.

Hopefully that gives you some direction, again, I’d heavily search YouTube and the Documentation tab here for each feature as you go to add it. And, as always, you can ask on the forums here if you come to a more specific question.

Thank you very much for both the answers! I will try to do something following what ExtraLifeMatt said.
Initially I also considered Unity Engine to do what I envisioned, but the fact UE4 is in C++ convinced me to try to employ it. I am ready to spend some more time in doing this simple project, just for the sake of learning something about UE4.
Thank you again, you really gave me confidence in my small project.

UE4 sounds like the perfect tool, you’re gonna have a blast !

Didn’t Ryan B do some experimental work with point clouds where he packed the x,y,z data into a texture and used the GPU to render it?

AnoobiDC,hello friends, I am going to launch a project similar to yours recently. How is your practice? I hope you can share some experience, thank you!

Since UE4 has a particles system – which is basically what you want --, why shouldn’t it be possible? If the provided API isn’t flexible enough for your needs, the source code of UE4 is available, so you can adapt or extend this API and the underlying system in any ways you see fit. That is the beauty of UE4! Alternatively, check out Blender’s particles system, which is quite good as well, and which might do exactly what you want… if you don’t real-time need interactive user feedback that game engines provide out of the box: Blender Particles Tutorial - Blender 2.8 Beginners Tutorial - YouTube