Last week! Thank you to everyone who came and supported me at the capstone presentations on Saturday. I was very happy with how it went. My defense is this Thursday so I am focusing on getting my documentation in order and finishing up the website. Thanks for following along. It has been a blast.
I've got good new and bad news. First, the good news! The animated version is complete. I am really happy with how it has turned out. I am also making good progress on my presentation for Saturday. Now the not so good news. The physical model is not going to work. I discovered last week while putting stuff together, that not all of the contact points on the rotor faces are making contact. This is due to the plastic rotors warping as well as slight differences in the brass bolts. I've tried everything that I can think of, but there always seems to be at least one bolt less than a millimeter away from it's counterpart. I am going to do what I can to make it presentable for Saturday, but it will not be functional. The closest I was able to get it to functional was about 80%.
I am now offically Bob the Builder. And by that I mean I have made a lot of progress on building the physical machine. All the parts finally came in, and so far the plugboard is complete, the reflector is complete, the LEDs are placed, and rotors are coming along. I have also made progress on animation. My code is translated to c# and I have made great progress on creating the windows form (meaning I'm very close to getting it animated).
I have not been very productive lately, so this update isn't anything special. For the physical enigma I have two updates. 1. I have the rotors printed. 2. I was able to find brass machine screws that are good enough conductors to be used as my contact points. Hopefully this means I can get to assembling the rotors asap. As for the simulator, MVP and DCP have given me some ideas as to how I can begin animation. We decided it is going to be using a limited number of rotors, as opposed to the simulator I have right now.
I did some more refining on the rotor design. I added a gear feature which will come into play when I try to start actually rotating the rotors. I also added small holes in the gear which is to help attach two pieces together.
Big milestone for my emulator! It is basically complete. I found a few issues when switching to decryption mode, but I fixed them. It can now encrypt and decrypt full files. There is also a display function that will allow the user to track the path of the letters by hand.
My update for today is that I now have a way to save inital settings. The user can now select either a random setting, or input a specific one. So now users can easily decrypt a message if they know the inital setting the message was encrypted with.
My evening was spent watching a new show and creating my first 3D model of a rotor! I'm using Autodesk Fusion 360 as my desing software. This first model is very simple, but for my first time using the software I am happy.
Progress! My code now successfully encrypts and decrypts with 3 rotors. (Thanks to DCP and MVP for finding my silly logic error) My next goal is to figure out how to store the starting configurations so the user can input one they've already used.
I've hit an issue. I initally thought the rotors were working as intended, but noticed that while trying to decrypt I am not getting the expected output. DCP made an observation as to how I was sending the reflected information. It did improve the output. However, there is still not working. This is now my priority. As for progress, I met with Dr. Olson from the physics department to discuss the physical component of my project. We made lots of progress on the design. My next steps here are to get some parts ordered and model the 3D parts.
The alphabet has now increased to all 26 letters of the alphabet! I also give the user a choice when it comes to display types. There is fast encryption for single letters, descriptive encryption for single letters (which shows how the letter moves through each component of the enigma), as well as a mode that allows for full lines of input to be encrypted at once. File encryption is yet to come.
I made significant progress on the code today. Thursday I had drawn out a diagram of how I want my objects (mainly rotors and reflectors) to interact. The rotors and reflectors are now functional. Some code needs to be added in order to save the configurations to a file, but the basic fucntionality is there. The next step is to see how they function together, starting with one rotor and one reflector. Hopefully working up to three rotors and one reflector.
I had a zoom meeting with MVP and DCP today. We discussed the basic mechanics of the Enigma rotors, reflector, and plugboard as well as how I need to handle the initial settings for the machine. To start out, I am going to work in C++ and get the rotors working.
Recieved our project assignments today! Mine is on the German Enigma machine. I've been interested in the Engima since the movie "The Imitation Game" came out in 2014, long before I knew I would end up studying computer science. Two semesters ago, while in a class on Combinatorics, I did a poster presentation on some of the math that demonstrates how complex Enigma was. MVP and DCP came to that presentation and the hints that my capstone would be on a similar subject started there. Now it's time to get down to buisness.