Posts

Showing posts from January, 2018

Java - Collision Project (ongoing)

Image
Currently, in Processing, one of my classmates and I have been working some simple physics modelling. It's a work in progress and we haven't achieved what we'd like to, but here's a demonstration: As is fairly obvious from the demonstration, no collision between individual balls has been implemented yet. However, the balls collide against the walls of the window and recognize when they have "collided" with another ball by changing colours. We're considering building a simple Pool game from this afterwards and implementing the classes and functions we've created here.

Lego EV3 Project - Software

Image
While I was mostly responsible for the mechanical aspects of the project, I wrote the code that allowed moves to be entered into the EV3. Some components of the software that were were originally planning on implementing weren't implemented due to some significant platform limitations, such as file transfer between a PC and the EV3 brick. Let me explain. The checkers "AI" that we wrote was very primitive, but it was capable of generating moves based on what it thought was optimal, with some scoring mechanisms. This was written in C as we had hoped to port it over to the EV3, which was running RobotC. However, should the EV3 be unable to run the code (spoiler alert, declaring an 8 by 8 array in RobotC causes a memory allocation error), we had hoped to run the program on a computer, generate files of the moves, and then read the files into the EV3, where the moves would be then executed. File transfer using the EV3 and RobotC meant very finicky (for lack of a better...

Lego EV3 Project - Mechanical

Image
For the final project in my first semester, we had to create a Lego robot that achieved, well, something. Leave it to me and my project members to try to make a robot play checkers. This first section is about the mechanical design. Most of the construction of the robot was left to me, with my prior experience with Lego. It's design is a simple gantry using racks and pinions for movement: Admittedly, it's quite obvious that the design could be improved significantly in terms of rigidity. There's heavy bowing due to the weight of the various components on the gantry. However, this was an exercise in constraints of what we had to complete the project. The Lego EV3 kit limited us to three motors and relatively short cables. As a result, much of the original plan had to be changed. As for the individual components, the gantry is powered by a single motor on the left side of the gantry. In earlier versions, we noted that this was not enough as the other si...

Java - Snowflake Animation

One of my classmates recently introduced me to Processing, and the first project I attempted was animating snowflakes. Though admittedly, they're just white circles. Here's a preview of what it looks like: Either way, it was interesting to play around with Processing and learn a bit of Java while I'm at it. Some things to note about scalability, though. Each snowflake has individual properties and there's no instances or anything to speed up processing, so having larger amounts of snowflakes tends not to be a great idea while running on CPU. One of Processing's renderers, FX2D, can be used to allow for more ridiculous numbers of snowflakes at higher resolutions, however. For now, there's no interaction built into it, however, I'm considering implementing some functions that allow the user to create wind and blow snowflakes around using their mouse. I'm fairly certain this was done once on YouTube. Below's the source for anyone who's...