Shape Recognition

By Robert Bengtson

CS Philosophy

Creating a creative and interactive world!

Blog Entry #1

I did some research on geometry and possible programming enviroments to use. Right now I am thinking about using the unity game engine which has C# support and some useful librarys already packed. I am going to do some more research on that this friday. As for shape algorithms I have been looking at some geometry text books and studing rays or straight lines. I am going to get those down first and then I am going to work on vertices so that I can move on to more complex shapes. Still have no clue how I would do a circle though. So I think I am going to hold off thinking about them till straight line processing is working well.

Blog Entry #2 2-5-18

Got a lot done this weekend. After a lot of research, I finally got coding in Unity and I learned quite a bit about how unity works and interacts with C# code. I managed to implement the line algorithm I have been working on and create a working prototype that can take the user input of a line and then clean it and give the correct angle and orientation. My distance algorithm isn't perfect and messes up quite a lot but to be honest I do not really think it is that important right now. The cool thing about using unity is that it allows me to auto-publish to the web so I am going to post a working test build to this site. I hope I can continue to do so as it easily allows the track of progress. but as I add more and more I might need to forgo doing so due to size constraints. Next up I am going to begin working on adding verticies or multiple lines from user input to allow for more complex shapes such as squares and triangles.

TEST BUILD 2-5-18

Blog Entry #3 2-22-18

Sorry It has been a long time since my last post but I have been working on a few features and I find it hard to talk about them until they are finished to a point that I am satisfied with this build has two new features in it. First of all is multi-line drawing with the help of the safteybox technique. How the box works is that it spawns on the mouseposition on mouse down and then checks for if the user leaves it from horizontal or vertical. This method allows for the detection of 90 degree angles while also leaving room for the user to draw. Right now I cannot detect angled lines which is a problem but, that is definetly the next feature I am going to tackle. Second feature added in this build is a 2d character the user can control that also responds to collison using raycasting. I also added collision to the lines the user draws so have fun with that. The main reason I did this feature right now is because I knew I had to tackle it at some point and the tutorials I had to look at to complete it showed me some helpful things such as raycasting and collision detection that can be transferred back to my shape detection algorithm Raycasting especially shows potential of being helpful but, until next time enjoy my latest test build!

TEST BUILD 2-22-18 TEST BUILD 4-2-18

Final Build

Worked really hard on this and I am really glad that I got the oppurtuinity to work with Unity I learned a lot about how It works and best practices to use with it. It really made the Graphics part easy so I could worry more about the actual shape Recognition which still has a few kinks but, I am happy with how it turned out! I played my competitve Tetris Game A few times with my roomate and it was a blast!

Final Build Webapp Download The Source Code!
Resume
Resume

Career Plans 5/8/2018

I would very much like to continue working in Unity, I really enjoyed it, and I have been applying to unity Jobs In the area. I really like making UI, and Interactive stuff so continuing in that would be cool. If I had a second choice I think working in data aquisition would be pretty cool. Either way, I'm keeping myself pretty open right now and I'll see where it takes me. I would love to own my own software company some day or be a senior developer at a cool company

Pert Chart

Pert Chart

Data Flow

Pert Chart

Project Structure

Pert Chart