Idea for graphics programming project?

In summary, Kristofer wants to create a project for his graphics programming course that showcases his talent for programming and intuition for physics. He wants to make a physics simulation that renders in real time and is visually appealing and impressive. He is open to simulating something new and unique, such as quantum wavepacket collisions or electron transitions in a hydrogen atom. He is also looking for ideas and suggestions for his project.
  • #1
Hello! I'm studying graphics programming right now, and in the end of this one semester long course we are going to make a project in which we will program an application that displays some nice graphics. I want to take this as an opportunity to show that I have a talent for programming (having a feeling for algorithms, finding possibilities and carrying out interesting simulations, and to visualize these in a good way), that I also have an good intuition when it comes to the fundamental nature of physics, and that I can combine these two together and come up with new solutions. I just don't know the best way to do this. All I know so far is that I probably want to make some kind of physics simulation, and I want it to render in real time. The application should of course be nice to look at, but mostly I want it to be impressive and interesting in some way for the user, so to make him see that something is actually going on under the surface. Basically, what I want to show is that I have an edge in my field and that I can think outside of the box.

I'm studying applied physics and my profile is theory, modeling and visualization; that is why I’m taking this course - this may after all be my only chance to visualize some real physical process really nicely. A big bonus too is of course is if I make something unique, which hasn't really been done before. Maybe it is doing a simulation and visualizing it in a new way, or simulating something using a new, more efficient algorithm that hasn't been used before or at least not very extensively. Or maybe it even is simulating something that hasn't been simulated before. This point is not a requirement since it may turn out impossible to fulfill, but it is still a big bonus.

I have currently been studying quantum mechanics and quantum dynamics, which I think is a very interesting subject, although it doesn't mean that it has to be in that subject. I think fluid dynamics is an interesting subject to for example. I haven't yet studied elementary particle physics; nor have I studied string theory, but I'm going to. Maybe there is stuff in there that could be interesting to simulate and if there is I wouldn't mind reading about the subjects on my own. I'm aiming to reach the front edge of physics and as you see, I want to catch people's interest by proving that there is where I belong.

I'm asking you for ideas to a project since you probably have a greater insight in these subjects than I do, and maybe you also know what could potentially be interesting for an employer. Any ideas are welcome, there are no bad ideas; I only see them as sources of inspiration. Thank you in advance!

- Kristofer
Physics news on
  • #2
A 3d (stereoscopic) visualization of nonrelativistic elastic quantum wavepacket collisions. Each incoming Gaussian wavepacket could be some kind of coloured (half-transparent) blob. The colouring could indicate energy density.

You could use e.g. a Coloumb interaction between scalar (no spin) states of like charges, and some kind of numerical modelling of the Schrödinger equation. The study the results for different impact parameters.
  • #3
You could make a program where the user is free to move around at relativistic speeds, then you can take Lorentz contraction, time dilation etc. into account.
  • #4
If you know a little bit of quantum, a great visualization project would be a rendered animation of electron transitioning between energy levels in a hydrogen atoms. You can find the formulae for probability density in any quantum text or even on Wikipedia, so you only need the very basic understanding of quantum mech.

Don't worry about realistic transition rate. Just do a linear sweep from one state to another. Make sure that angular momentum changes by 1, so this simulates the actual transition due to absorption/emission of a single photon. The rest is purely a visualization challenge. You need to take a density distribution and represent it in an animation in an easy to grasp way. Stereoscopic option would be nice as well.

There are a lot of people who ask question about electrons "jumping" between states on this forum. It's very difficult for a lot of people to grasp that only energy jumps but transition itself is gradual. Last time this came up, I was trying to find an animation somewhere, but there is absolutely nothing on-line. I considered writing something, but it'd be quite a bit of work. Just right for a project, though.

So you'd be doing something useful, something that nobody has done, apparently. (Or at least, not published in easily accessible way.) And you'd be doing a project that is challenging from programming perspective, relevant to physics modeling, and is all together pretty cool. Some of the transitions between higher quantum numbers should look rather spectacular if done right.

If you'll need help with the physics or programming on this, there are a lot of people who'd be happy to help. I can help with either one if you'll have specific questions.

P.S. I could give you a few tips on visualization tricks you can try, as well, but here, it'd mostly be about experimenting with different techniques to see what works.
  • #5
Thank you for the replies guys!

I have decided what to do now: I am going to simulate a particle quantum mechanically and animate it, using the time-dependent Schrödinger equation, and OpenGL for the graphics (which is what the course builds on). I think I have at least a couple of different ways I can imagine visualizing it in, but I would really appreciate your ideas anyway. The simulation is going to take place in a limited, three-dimensional room with a potential field applied to it. There are a few question marks concerning the program though:

The wave function will be represented using a three-dimensional square grid (in other words a cube grid?), each unit, or cube, containing a complex number. What I'm wondering about here is whether to make the grid refinable or not; in that way the grid can be finer where there are a lot of things going on (i.e. the complex value changes very quickly from cube to cube) and less fine where basically nothing happens, so computational power can be saved. Do you know of any good and easy way of doing this or do you think it will be too much work?

How can I perform the simulation so that the path of a charged particle bends in a magnetic field? For example, if an electron is sent away perpendicular to the magnetic field, it should start to go in a circular motion.

Is there any good way of simulating walls (infinite potential steps) that are not parallel to the grid? It can be for example a hard sphere, in which the potential energy is infinite. The method should be an analogue to anti-aliasing an edge in a raster image. Note that the anti-aliasing method that is usually used in image processing won't work here, since the average of something that is not infinite and something that is infinite is still infinite.

About the visualization of the particle, both of you torquil and K^2 wrote about using stereoscopic vision; I like that idea. Do you have any specific method in mind? 3D glasses could be one solution, or are you may be thinking of the 3D-screens that are popping up everywhere on the market?
. The methods I’ve been thinking of are (stereoscopic or not), either imagining the probability distribution of the position of the particle as a cloud, then that cloud could either be made looking as a normal cloud (imagine fog), or height levels of this cloud could be drawn. Otherwise, a number of test particles could be followed and their paths animated; these test particles would then be simulated using the real part of the local wave velocity, which is the momentum operator applied to the wave function divided by the particle mass. Who knows what interesting trajectories would be obtained? Or a combination of both could be used.

One more thing, what boundary conditions should be used to avoid getting reflections? I remember that I figured out a way of doing this when I made another program that simulated air flow in a square grid, but I think it only worked well when the wavefront was parallel to the side, and by the way I don't know if the same thing would work when using the Schrödinger equation.

And finally, is this the best forum for asking these questions?


1. What is graphics programming?

Graphics programming is the process of creating images, animations, and visual effects using computer software. It involves coding and manipulating graphics elements such as shapes, colors, textures, and lighting to create visually appealing and interactive content.

2. What are some common programming languages used for graphics programming?

Some commonly used programming languages for graphics programming are C++, Java, Python, and OpenGL. Each language has its own advantages and is used to achieve specific goals in graphics programming.

3. Can you give an example of a graphics programming project?

One example of a graphics programming project is creating a video game. This involves designing and coding the game's graphics, such as character models, landscapes, and special effects. It also requires implementing user interaction and game mechanics to make the game playable.

4. What skills are needed for graphics programming?

To excel in graphics programming, one needs to have a strong understanding of mathematics, computer science, and programming concepts. Knowledge of graphics libraries and frameworks, such as OpenGL and DirectX, is also essential. Creativity and attention to detail are also important for creating visually appealing graphics.

5. What are some challenges in graphics programming?

Some common challenges in graphics programming include optimizing performance, dealing with compatibility issues across different devices and operating systems, and creating realistic and visually appealing graphics. Debugging and troubleshooting code can also be a challenge, as it requires a deep understanding of the underlying principles of graphics programming.

Suggested for: Idea for graphics programming project?