Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam.
Jonathan Doe
1600 Amphitheatre Parkway
Mountain View, CA 94043 US
(123)456-7890
anyone@website.com
Master in Graphic Design • April 2007
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. Nullam dictum felis eu pede mollis pretium.
B.A. Degree in Graphic Design • March 2003
This is Photoshop's version of Lorem Ipsum. Proin gravida nibh vel velit auctor aliquet. Aenean sollicitudin, lorem quis bibendum auctor, nisi elit consequat ipsum, nec sagittis sem nibh id elit. Duis sed odio sit amet nibh vulputate cursus a sit amet mauris. Morbi accumsan ipsum velit. Nam nec tellus a odio tincidunt auctor a ornare odio. Sed non mauris vitae erat
Senior UX Designer • March 2010 - Present
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. Nullam dictum felis eu pede mollis pretium.
UX Designer • March 2007 - February 2010
This is Photoshop's version of Lorem Ipsum. Proin gravida nibh vel velit auctor aliquet. Aenean sollicitudin, lorem quis bibendum auctor, nisi elit consequat ipsum, nec sagittis sem nibh id elit. Duis sed odio sit amet nibh vulputate cursus a sit amet mauris. Morbi accumsan ipsum velit. Nam nec tellus a odio tincidunt auctor a ornare odio. Sed non mauris vitae erat
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.
I have found that recreating an existing program in another language is a challenging and valuable way to gain experience. Especially if that language is something basic, like the 2D online graphing calculator Desmos. At its core, programming is just math. Variables, constants, and functions are the same in both. An “if” statement can be represented as a piecewise function. A ticker in Desmos serves as a “while” loop. In both math and coding, you provide an input value, perform calculations, and get an output value. Once I understood these concepts, I easily found Desmos to be one of my favorite coding languages.
Figuring out how to represent the third dimension on a 2D screen has always been a fascination of mine. My first interaction with raycasting was through a tutorial series published on YouTube by Griffpatch, in which he designed a game using raycasting in the block-based language Scratch. I followed this tutorial in Desmos, however some of his methods did not translate well, such as moving along the ray until it hit a wall. This required a “while” loop, which at the time I was not familiar enough with. My workaround was to generate a curved array in front of the player, which can be used to find the walls.
This first successful raycasting engine I made had a lot of problems, including non-intuitive controls, moderately inaccurate distance calculations, and the common raycasting “fisheye” bug. Later, I came across a website detailing how the original Wolfenstein 3D video game had developed raycasting, and decided to scrap my code and start again. The new version took much less experimentation, and the document translated well into Desmos. I fixed many of the problems I had with the original program, and was even able to add a joystick, collision, and an easily configurable map.
View the project’s creation through these links:
This project was inspired by a few youtube videos I watched where people would use a "noise map" to quickly create beautiful landscapes exactly how they wanted. After taking a closer look at how noise maps were generated, I decided, "I could do that!", then spent many months fixing small bugs. However, this is one of the projects that I continued to work on until I could consider it finished, and I am very proud of how it turned out.
Getting the noise maps to work was actually fairly straightforward. I had to create a custom randomness function and figure out interpolation, but thanks to Paul Bourke's website it didn't take long. The first version (shown above) was thrown together in a few hours.
Next, I decided that I could use noise for a lot more than just making hills. I created nine different biomes, and spread them throughout the world using a noise map for height and one for temperature. The spread biomes did not blend together, however, as some were at a higher elevation than others. I wanted them to gradually blend together heightwise, so I made an interpolation function to do so. It took over three months of work, but finally I got it working.
The final problem I ran into was that I had not accounted for efficiency at all. I was doing so many unnecessary calculations that I had hit Desmos's calculation limit, which I didn't know existed. Oftentimes my browser would just crash, and the rest of the time it would take a few minutes to load. I went back through my code, and improved on some major inefficiencies, and now it runs much faster. As a side effect, it's now fairly easy to create your own biomes, given a basic understanding of Desmos and Noise.
View the project’s updates through these links:
Paul Bourke and his infinite supply of knowledge
This project was created for the BlasterHacks Hackathon at Colorado School of Mines. The goal was to make remembering to journal/journaling as simple as possible, so we decided on an email-based system where you could set up a repeating reminder for some time in the future, and then reply to an email with your journal entry. The system would then store your entries for later, which could be accessed all in one location.
This was an incredible experience, especially coding alongside three people I had met two hours before the event. We were able to divide the project into four distinct parts, and managed to mesh them together in a way that worked great. I was in charge of reminder setup and database integration, where I learned a lot about how to use React.js and Firebase.
View the devpost page:
As soon as I saw someone had figured out player input in Desmos, I wanted to make a game. Pac-Man was an obvious choice, as it had few controls, was relatively simple, and had extensive documentation I could reference. I wanted this version to be as true to the original arcade game as possible, including all of the bugs and features. Luckily, I found a document called “The Pac-Man Dossier” which detailed every aspect of the game, including a history section.
When creating the game, I took it one step at a time. I first figured out how to make the maze, then made my code work for any size and configuration of mazes. Then I coded the player, complete with cornering and an inability to u-turn. Continuing on, I created the ghosts, with their intricate movement patterns. At one point I had to rewrite a large portion of the code, as Desmos runs much slower than the Pac-Man CPU.
Though I didn’t end up implementing all the features, the game is at a point that I am exceptionally proud of. Looking at the Desmos graph, you might not even realize that this is running on an online calculator.
Try out the project with these links:
Algorithm used to determine CPU speed
Since high school, a friend and I have been working on 3D graphics. We started off just moving a point around the origin, but quickly figured out how to do lines, then transparent planes. As of now, the project can render 3D convex objects with lighting, perspective, and (Non-ambient) occlusion.
View the project’s progression through these links:
For my Computer Science Principles final project, I had to create a program in Python with functions or file input/output. This was easy enough for me, especially as I felt quite proficient in Python, so I wanted to create a project that I found useful. Unfortunately for my opponents, this ended up being a Words with Friends cheat.
I knew that I wanted a brute force algorithm. By entering the board state, the letters in my hand, and utilizing a dictionary, I could find every possible move I could make, order them by point value, and determine the optimal word. It would take a LOT of nested “if” statements and “for” loops, and many comments to make sure I didn’t get lost in my code.
After two failed iterations and two successful ones, the code was still extraordinarily messy, but functional. If I were to re-do it today, I would organize the program into subroutines, refine my comments, and most likely use a better output system than ascii art.
Download the final project here:
For a C++ final project, I decided to make a game that combined elements of both Pong and Breakout. This project was a new step for me, as before this I had never used graphics libraries, which now are an important part of my programs. In the project, you control a pong paddle versus a bot-controlled paddle (Or player controlled, if you change the config settings), but between the players there is a pile of Breakout bricks, which can give you powerups. The challenge of this program was creating multiple of one object using classes, as well as writing collision code for the balls against every shape and size of rectangle in the game.
Download the final project here:
For a long time, Unity seemed like a very powerful, yet very confusing tool. Because of its complexity, I never attempted to create projects using it, however after taking a c++ class, Unitys c# is very familiar to me. In the future, I want to use this to create many projects, but as of yet I have made one project, 3D minesweeper. Coding the game was simple, as I had already written minesweeper in 2D on a TI-83 calculator, but creating my own movement and camera scripts was a challenge.
Download the project here:
My experience with programming started with block-based programming language Scratch, during summer camps in middle school. A few years later, I decided to revisit it, and made three simple games. I continued making projects in Scratch, and to this day I have shared over 40 projects, including small arcade games, concept testing projects, and interactable art.
Some of my favorite Scratch projects include:
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae.
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit.