Our CEO wants to have some desktop programs to demonstrate to customers what we do. Basically, we find cracks in things (walls, equipment, stuff like that) from photographs taken by other companies (e.g. drone companies), and sometimes we use machine learning to identify them. We train these machine learning algorithms with fake data. That's a hard concept for our customers to understand, so we want to demonstrate this better.
You are going to be writing one of the programs that creates fake data.
This program sits in an infinite loop doing this:
Step 1. Algorithmically generate a concrete wall[*].
Step 2. Randomly pick some lighting.
Step 3. Randomly pick a starting camera location and an ending camera location.
Step 4. Display the scene and take a picture, playing some sort of camera sound. Save it as a JPG into a folder called "no_cracks".
Step 5. Pan/zoom towards to the ending camera location for half a second.
Step 6. If you’ve got to the ending location, move to step 7, otherwise back to step 4.
Step 7. Randomly generate a crack on the wall from step 1.
Step 8. Do the same as steps 4-6 but this time save the JPEG it into a folder called "cracks" and when you are done, go back to step 1 and create a new wall.
[*] If you happen to have a selection of wall assets that you could randomly pick from, even better.
That's it. It's like a repeating movie of endless scenes of walls with and without cracks. Eventually, the user quits -- just be careful about how you save the images so that exiting the program doesn't leave a half-complete JPEG image.
The program has to run on Windows. If it also runs on Mac and Linux, that's a bonus. (Let me know if you will do this, and if so, for how much more.)
I have put "Unity" as a skill for this project, but I don't really care how it gets done; pretty much any language or any framework will do.