Categories
Uncategorized

Project GreenWisp: Digital Waste Assistant. Documentation

Our video

Project summary

Project GreenWisp is an easy to use affordable digital waste assistant iPad app designed for high traffic waste stations. GreenWisp aims to reduce recycling and compost contamination through the use colorful animated waste characters and modern object detection technologies. 

Background

Boulder County’s recycling guide

In late 2022, I learned that CU was eliminating non-food compost from their waste systems. The reason for this was a change in policy from A1 Organics, a major local compost processor for the Boulder area. This was due to high contamination rates of compost waste. Having learned this and knowing that I myself struggle to know what goes in compost, trash and recycling bins, I thought it would be an interesting experiment to utilize machine learning technologies to potentially create a system that could tell a user where items go. 

Spring 2023 Machine Learning Independent study

Project GreenWisp Spring 2023 demo

View full writeup here

During Spring of 2023, I pursued an independent study to learn about machine learning technologies for this task with a focus on object detection. Over the course of the semester, I attached a camera and a computer to a high traffic waste station found in the athletic department dining hall. I had the camera take photos of waste items as people were disposing of them via motion detection. I collected upwards of 800,000 photos and practiced using tools such as TensorfFow and more. With these photos, I took a few hundred of them and labeled objects found in the photos as either trash, compost, or recycling. I had the goal that at the end of the semester, I would attach a display to the waste station that would show classifying bounding boxes on items as they are being thrown out. As the end of the semester drew near, I was finding it very difficult to get TensorFlow to the work well enough to reach my goal so I opted to use the Apple’s CreateML API to classify 3 item categories: Trash, Food, and reusable plates. Create ML enabled me to quickly deploy a proof of concept Mac app for a few weeks at the end of the semester. Despite some bugs with coordinate drawing on the small monitor I used, reception was good although I noticed quite a few issues.

Issues from the proof of concept

The ML model identifying a napkin as trash (the coordinate system had some issues which is why it is not aligned properly)

One of the main problems with my approach was that training a model to identify waste categories would only allow me to use that model at one particular location. Items that are recyclable or composable in one location may actually contaminate those same bins in other locations and should be thrown in the landfill instead. Another issue was that given my limited labeling resources, labeling thousands of items to produce a highly accurate machine learning model given that waste items are frequently of different sizes, shapes and colors was not feasible. If I couldn’t make an accurate model for a system that relies entirely on ML, I wouldn’t be able to help reduce contamination.

Fast forward to Fall of 2023

One of our precedents: The Oscar Sort AI waste bin

Having identified some flaws with my previous approach towards this idea, I brainstormed a new approach that addresses these concerns. During our precedent research phase of the capstone process, I found that earlier in 2023 a product was launched called Oscar Sort. This product had a similar setup to what I had previously envisioned that used machine learning to identify waste objects. Another precedent I found was the EvoBin. This system did not use artificial intelligence at all but rather was a screen designed to be placed above waste stations that cycled through a prerecorded video with images of specific items to that location and which bin they belong in. The EvoBin would also occasionally show trivia or fun facts to keep users interested. When looking at these precedents what stuck out to me the most was how all of the precedents we researched required additional hardware to be installed by professionals and were very expensive with some of them costing tens of thousands of dollars. All of the precedents also seemed to use the same realistic non-animated images for displaying waste items.

Brainstorming

An example of Japanese Kawaii style characters (these two were used for the 2020 Olympic Games)

After completing the precedent research phase, I began brainstorming how I could create something that achieves something similar to the precedents I identified while doing it in a novel fashion that addresses their shortcomings. The most significant shortcoming in my opinion was the high cost of hardware found in these precedents. Having previously used Apple’s object detection technologies for my first attempt at this project last year, I thought it would be interesting to create an application that could be run entirely on an iPad. By running the app on an iPad, I could achieve similar results for a significantly lower price and with no additional hardware required. Despite the easy to use Apple CreateML suite, knowing my limited ability to label tons of data on my own for highly accurate object detection models for waste, I thought that it would be interesting to take EvoBin’s approach of creating engaging digital signage as the first priority for project but spice it up with less “industrial” style images that all of the precedents have. I have always been interested in the cute style of some Japanese animated characters such as Pokemon. This style is commonly referred to as Kawaii style and to me, I always felt like characters drawn in this style would get my attention. I thought perhaps I could incorporate that kind of character style into this project. As for the AI features, I decided that object detection of items could still be present in the project but it would take a secondary role in which select items that could be successfully identified would have an additional animation to tell the user what item they currently are holding.

My logo

What’s in the name?

The company name I use for all of my technology services is CyberWisp with the word wisp being a synonym for a ghost. My branding assets include some cute and colorful ghost like characters. Given that this project also has cute characters, I could continue the naming pattern with the name GreenWisp. Having done some additional brainstorming, I had come up with a general structure for the project and settled on 4 key goals.

4 Key goals

Design an iPad app that:

  1. Utilizes cute kawaii style animated characters to get the attention of passerby throwing away waste to help them accurate put their waste in the correct bin.
  2. Incorporate machine learning object detection to identify items in real time when feasible.
  3. Allow for easy customization by waste management administrators for their specific waste station configuration. 
  4. Require no additional hardware outside of an iPad.

Getting into groups

Because I have around 5 years of iOS mobile app experience, I felt pretty confident to tackle the technology challenges on my own. However, my artistic ability to create and animate original cute looking characters that don’t look like they want to eat your soul was lacking. That’s why I sought out Ian Rowland and Nik Madhu to be in charge of creating the character animations. Both Nik and Ian had experience with Adobe After Effects and were equally passionate about the using their skills to work towards a project designed to fight climate change.

Diagrams

A VERY early diagram of the waste screen.

Before building an app, I usually will mock up what the app will look like that way I can start to figure out how the pieces will fit together from a user interface perspective and a coding perspective. We based the design of our sketches off of ideas from precedents such as EvoBin and Oscar Sort. We opted for a column interface where each column represented a particular waste category such as trash, compost or recycling. Since waste stations can vary by the number of categorical bins and the position of those bins, we needed to allow for easy customization. We quickly found that the screen real estate of a 10.9 inch iPad device is limited for all the information we want to display to be easily read from an arms length so every design decision had to be carefully made and some features had to be cut. One of the original ideas was incorporating Evo Bin’s trivia and other fast facts into the app but we quickly found that this would be very difficult to do because of the limited screen real estate. We decided on displaying three items at once per category and allowing up to four categories of waste to be displayed at one time. We also included arrows in our diagrams that could be customized to point in the direction of a particular bin. 

Acquiring Materials

Apple”s specs for the iPad 10th generation.

Apple has numerous iPads available for sale each with different screen sizes and capabilities. Since one of my project’s focuses is affordability, I thought it would be wise to design my app targeting one of the cheaper iPads available rather than the high end iPad Pro’s. By doing this I could ensure that the app could work on as many devices as possible. After doing some research, I found that the 2nd most affordable iPad has an ultra wide angle front facing camera that could be very useful for classifying items in front of a wide waste station. I ended up purchasing a 10.9 inch iPad as well as a high speed SSD drive for moving large amounts of images when training machine learning models.

Firing up Xcode.

Since I was creating an iPad app (with the additional ability to run on macOS), all of the code was going to be written in Xcode using the Swift programming language. I also decided to use SwiftUI to create the views (which took a little bit to get used to since most of my expertise has been with working with UIKit). As a mobile app developer, one of my first tasks when starting a new app is establishing how the app’s data will be structured and accessed so I don’t have to rewrite and rethink large amounts of logic later.

Structuring the data

When structuring the data, I concluded that the waste columns were by far the most important data structure in the app. Each column would represent a particular waste category such as trash compost or recycling. Waste admins can name these columns from the configuration menu as well as set the background color. Most importantly, items can be assigned to each column. Since I was going to be working with animations, each column object would also manage a SpriteKit view (or SKView) to control animations. 

For saving the data, I figured I would use a single JSON file that would be loaded whenever the app starts.

Starting the UI: Configuration Screen

Before I could work on the UI that would display items, I had to build a method of creating waste categories and assigning items to those categories. I decided to do this by designing the settings screen first. The settings screen shows all of the waste items that are available to categorize and allows you to create a waste column, customize the color, name and which items belong to that particular category. I used quite a few SwiftUI lists to allow easy selection of data. The configuration screen would be accessed by a simple tap from the main screen.

Displaying items

Now that the configuration screen was complete, my next task was displaying items on the screen. Because we were limited in screen size, I thought it would make sense to show only 3 items at once per category. Items would be displayed with their animation (or a static image at this point in time) as well as a label of what the item is below it. Categories with more than 3 items would rotate out items out every 5 seconds by fading the items. I was able to achieve this by creating “waste groups”, essentially groups would reference up to 3 items in a category and would be able to rotate through them. This would also allow me to force a particular waste group to appear at any time which would be needed later for object detection.

Dropping the arrows and the animated backgrounds

The old arrows and backgrounds.

While my primary job in this project was working on more of the technical pieces and UI, I did have to make some aesthetic design decisions. Originally I thought it would be useful to have arrows present in the app that could be set to a specific direction referencing the position of the actual waste station. Over time, I found that the arrows were taking up too much screen space so I decided to remove them. In place of the arrows, I added in waste bin images that would take a fraction of the space at the bottom of the screen (and looked significantly better). Additionally, I had placed an animated SpriteKit background effect for every column that was a bit distracting. I ended up replacing those animations with a wooden texture and coloring that according to the user’s specified column color.

Adding in animations

A screen recording of the animations added.

Now that Ian and Nik had some animations complete, I needed to add them into the app. Because each category has a background color, I could not simply loop a video of each character’s animation as .mp4, .mov and other video formats don’t support transparency. Instead, I exported a sequence of png images from each character’s After Effects file and added them into Xcode to be loaded as a Sprite’s texture atlas.

Object Detection

A photo taken and labeled using RectLabel Pro of a Coffee Cup to train an object detection model.

One of the main goals of this project was to add waste item recognition capabilities using object detection. At this point in time, the app was able to successfully cycle through animations of items but had no object detection features yet. Since we were planning on doing our user testing in the CU Boulder Athletic’s dining hall, I thought I would target two common contaminant items from the Fueling Stations: black togo containers and Ozo coffee cups. To get the machine learning model working I took around 150 photos of these two items in different positions. Because the iPad was going to be mounted on the Fueling Station waste station, I put the iPad up on the waste bin to take the photos. I used an automatic photo taker app to take the photos in quick succession with a 3 seconds delay in between each photo for me to rotate the item into a unique position. I then labeled them with RectLabel by drawing bounding boxes on these images. 

The CreateML training program.
The model classifying a never before seen image.

The process of labeling images is very tedious and took a couple of hours as I wanted to ensure that the bounding boxes were tight around the items to ensure the greatest accuracy. After labeling them, I imported the images into CreateML and my computer whirled up its fans to train the object detection model. The resulting model seemed to have good accuracy according to CreateML. 

Incorporating the ML model into the app

Video of the object detection animation.

Now that I had a trained model file, I needed to get the model to work in the app. For IOS platforms, using camera features generally requires you to use AVFoundation. This is one of the most confusing frameworks that I have worked with on iOS. Luckily, Apple had an example app called Breakfast Finder available that could identify certain foods via object detection. I was able to repurpose some of Breakfast finder’s code and attempt to figure out how it works. After a bit of trail and error, I successfully got the debug console to print the detection inferences. Interestingly, unless you set the confidence level up a bit, the console will repeatedly spam random detections. This single variable was something that I would need to play around with. 

Getting the console to print detections was nice but I needed something to happen on the characters when the item the character represents was detected that the user would be able to see. I decided an easy animation to do would be to have the characters grow and shrink in size repeatedly when an item was detected. To achieve this, I had the app look for items via the ultra wide camera and then if one is detected, determine which waste column it belonged in and then force that column to show that item on the screen and trigger the animation for a minimum 0.5 seconds with the animation looping if that item remains detected. 

Waste Messages

Two persistent waste messages displayed. FOOD ONLY and Everything Else!

While my goal was to include a large swath of items to display, I realized that I might not be able to animate every item. Additionally, some users might just be in such a big rush that they don’t have time to look at the items that belong in each bin. To attempt to solve these two issues, I added customizable labels to the app. These labels would be created by a waste admin and had two modes: persistent, or rotating. In persistent mode, these labels would always be displayed on the screen in place of one of the animated items. Waste admin’s can set the position of the persistent labels to be on the top of the screen middle or bottom. Persistent labels are useful for messages such as “TRASH ONLY” or “NO FOOD” In rotation mode, the labels act like items just without an image. The labels will rotate as if they were another item. 

Deploying a demo into the athletic department

The demo setup in the athletic department.

During our capstone class, we had to do multiple forms of user testing. For one of our user tests, we decided to observe athletes in the athletic department interacting with the GreenWisp system and gather feedback from observations or interviewing athletes directly. Over spring break I set up the iPad on a waste station in the athletic department. I achieved this by using some industrial Velcro, and running an extension cord from the nearest outlet to the iPad. 

After setting up the system, we briefly interviewed athletes in the fueling station about their experiences. We interviewed some who were at their tables, some just before throwing items away, and others just after throwing items away. We received the following testimonials:

  • Some individuals used another waste bin and did not interact with the system.
  • Most individuals thought that the characters were cute and not uncanny. 
  • Most individuals said that they have looked at the system for help in sorting their waste at least once in the past week. 
  • A few individuals said they successfully had their items identified by the system. 
  • Feedback of the system was positive.

Other things we took away from this experience:

  • Users liked the character designs
  • We could improve our ability to get user’s attention potentially through identifying when they walk up. 
  • The object detection works but is a bit limited due to only supporting 4 items currently. 
  • We could improve the animation when an item is detected so that it can get the users attention better. 
  • Users only spend a small amount of time at the waste bin even when interacting with the system. 
  • Some users don’t know about the ability for the iPad to detect items. We should potentially communicate that better.

Import and exporting configuration

The configuration JSON.

With the focus on adding additional customization options to the app, it became obvious that someone configuring the system might want an easy way to copy their preferences over to another iPad running GreenWisp. Because I had previously setup everything to be saved as one giant JSON file, it was super easy to add the ability to import and export the configuration to send to another device. I initially considered doing this via a QR code, but unfortunately, the JSON files were way too large. In the future, I could potentially use a QR code by having the device upload the configuration to a server and then giving a generated link as a QR code for devices to download that user’s configuration.

Fixing the RAM issue

Xcode’s Debug Inspector RAM page.

As Ian and Nik continued to push out expressive animations of different waste characters for me to add to the app, I eventually ran into an issue with the app started to crash within a few seconds after launch. I quickly determined that this was an issue relating to running out of memory on the iPads. The iPad we were using has a ram limit of around 4 GB and we were quickly exceeding that threshold due to having so many high-quality animations present in the app. I tried a few methods to fix this, one of which involved offloading all of the SpriteKit animation frames whenever an item was rotated out from being displayed. This fixed the ram issue but caused animations to be extremely choppy and lots of frames to drop. I realized that I needed to make the file size of each items png animation frame smaller. So I went back into adobe after effects and re-exported every single item with a lower quality on the PNG sequence images. This process took some time, but eventually I was able to significantly reduce the amount of ram used without dropping frames.

Password locking the configuration page. 

After deploying a demo into the athletic department, I would occasionally come to a meal to see that the app was stuck on the settings page due to someone attempting to interact with the iPad via touch. I needed a way to prevent non waste admins from accidentally opening this page and changing settings. I added in a password lock feature. Waste admin can optionally lock the configuration screen with a password that they can set. When a password is set, tapping the screen, when it is showing waste items will display a password prompt. If no action is taken within 15 seconds the prompt will disappear. 

Final tweaks

Towards the end of the semester, I worked on adding additional items for waste classification. I was able to train a model that could now successfully identify chip bags and cartons in addition to the previous togo container and coffee cup. I also continued to add in new character animations as Nik and Ian completed them.

What’s Next

As the semester concludes I plan to continue this project in the future. I aim to release this app on the App Store within the next few months. Before releasing I still need to:

  • Fix some occasional crashes
  • Add in the ability to switch cameras
  • Add in a camera preview feature for seeing what the camera sees for waste identification.
  • Allow for enabling and disabling object detection features for specific items.
  • Have an additional animation or state change when the device detects an approaching person.
  • Some sort of tip or interesting fact feature.
  • Expansion of detectable items.
  • Create marketing materials.

Categories
Uncategorized

Final Project

For our final project, we were given the choice to choose a material of our choice and create a thing with it. 

Brainstorming

During the brainstorming process, I struggled to figure out what I should do. Possible ideas revolved around Christmas gifts for others, electronic wooden blocks, and useful items such as a laundry basket for the men’s track locker room. While many of these ideas were great, they were relatively complex or large and would have required a significant amount of time to complete. With a suggestion from my mom, I Googled some beginner woodworking projects and came across a guide for a mountain shaped coat/key hanger. I chose to use wood for its ease of cutting and the texture for this project (also because the project specified using wood). I specifically chose to use plywood due to the texture of it and the fact that it was one of the thicker pieces available in the BTU. Plywood is usually primarily made of a bunch of slabs of spruce, pine and fir glued together and is sometimes known as SPF wood. It is very affordable and is used for many applications such as walls, roofing, and sheds.

The wooden mountain coat hanger by Ana White is a simple wooden item made through cutting out wood in the shape of mountains, attaching dowels, and painting the wood to resemble the beautiful mountains of Colorado. 

Starting the climb

I first obtained a piece of plywood wood and used the table saw to cut it to the specified dimensions in the guide. I disregarded the thickness of the wood and only made sure that the piece I used seemed thick enough to hold 3 coats. Next I drew cut lines using a ruler and a construction square so I could cut the mountain shapes. I struggled to make the measurements for the lines exactly as specified in the instructions due to a lack of angle measurements for the triangle shaped mountains. Nevertheless, I ensured that the heights of the mountains relative to one another were the same as in the instructions. I used the band saw to make the cut on the wood lines. I then used the power sander to sand off some of my imperfections.

The guide specified that I should use a 3/8 drill bit to create the screw holes for attaching the dowels. I thought this was unusually large for a screw hole especially because the instructions specified using a miter to drill a hole for the dowels. I could not find any miters in the BTU lab, but I decided that I could probably avoid using miters since the 3/8th hole was quite large. I used the drill press to make 3 holes of 3/8th in diameter in the piece.

Pitstop at McGuckins 

I then journeyed to McGuckin’s Hardware to buy some dowels and screws to attach the dowels to the piece. I purchased 3 brass screws of 1 1/2 inches in length and 1/4 inches in diameter. I also purchased a large dowel for me to cut that was an inch in diameter. 

Assembling the hanger.

To cut the dowels, I marked them for 2 inches in length with a pencil. I tried using the table saw. Unfortunately, this launched my newly cut dowels backwards like Angry Birds multiple times causing some fragments in the cut. I decided to recut the dowels using the band saw for a much better and less deadly experience. To attach the dowels, I used a power drill and a bit that was smaller than the screw’s diameter to drill straight down to help guide the screws in. I then used the power drill with a screw head to screw and connect the dowel and the mountain shaped base together. It took me a couple tries of removing and reinserting the screws to get them to go straight down but I eventually was successful. I then used a very small drill bit to cut two more holes in the piece for nails to be used to attach the finished piece to a wall.

Finishing up

My final step was to apply a finish to the wood as well as paint the wood. I used a brown finish from the BTU lab to coat the item. While I could have applied a second coat to get the darker texture advertised on the bucket of finish, I thought the light brown looked good. I then used white paint to paint the snow on top of the mountain.

Ta-da

Categories
Uncategorized

Project 5: Metal

Becoming an Iron Man

(Galvanized Steel Man)

For this project, we are tasked with liking an item out of the type of metal. For my project, I chose a funny sounding metal sheet when you shake it, also known as galvanized steel. I was originally thinking about making a cube.

“Squaring up with the project. “

To make a cube, I thought I should start with cutting a square from my steel sheet. I attempted to use used the metal shears to cut the sheet into a square but quickly found that it was difficult to cut in a straight line using these tools. I then tried using the jigsaw to cut the square and had more success. However, I quickly realized that to make a cube I would have needed to cut a net rather than a 2D square. I decided I would start over.

Egging the project

I started with a fresh sheet of galvanized steel unsure of what I should make. I started with cutting a circle using the shears expecting to have an idea strike me. Unfortunately, I wasn’t able to make a perfect circle instead I was left with a 2D egg shape. That’s when I was struck with “a bolt of brilliance”. I was gonna make a Yoshi egg ornament.

Finishing up

Yoshi eggs have spots on them so I took the metal dremel and drew large circles on both sides of the egg. The first side, I made the circles by drawing lots of little circles to fill in the spots due to me having little control over the precision of my movements. The next side was better looking as I took an approach where I drew only a few circles on the outside while holding the dremel like a pen which gave it a cleaner look. Finally, I used the drill press to create a hole in the tip of the egg to allow the egg to be hung from a tree.

Categories
Uncategorized

Project 4: Concrete Vessel

A solid project

For this project, we were tasked with creating a cement structure that can hold water.

Finding a “concrete” idea

I struggled to find a good idea for my project. At first I thought it would be cool if I could create a water fountain of some sort that would utilize a pump to cycle the water. Unfortunately, making such a device would require a mold, piping, and other steps that would significantly complicate the project. I also considered making a cement shoe copy of one of my old New Balance 880 shoes. Because I had regionals for cross country in Texas during our work time I decided I would make a simple bowl instead due to time constraints. This would allow me to complete the project quickly and without making a mold.

Getting the materials.

To make the cement bowl, I took two plastic bowls from the CU Athletic Department. The first bowl was a white plastic bowl commonly used for cereal or yogurt while the black bowl is usually used for pasta or salad.

Mixing the concrete

I decided to use quick set concrete to make my bowl. Retroactively, I might have wanted to use the other type of concrete that has a smoother finish. I added water to the concrete mix and mixed it until it was a sort of cookie dough like texture and filled a small layer in the bottom of the black bowl so it would be able to hold water.

After making a small layer to act as a base, I placed the white bowl in the center of the black bowl and began to fill around the white bowl with concrete.

Next I let it sit for a few days while I left to compete in Texas.

I arrived at the BTU lab to find that my concrete abomination was solid and ready to be separated from the plastic bowls. I was able to pull out the white bowl by squeezing it. For the black bowl, I had to use scissors to cut the bowl apart and off of the cement base.

The final product had a very rough texture on the top of the bowl. If I had more time to periodically smooth it during the curing process I might have been able to get the top to be more smooth. The product also left lots of cement crumbs.

Categories
Uncategorized

Project 3: Plastic Gondola

An Eggciting Challenge

For project 3, we were tasked with designing a gondola out of recycled plastics for carrying 3 eggs down a ramp with the goal of either all of the eggs surviving or being destroyed.

Cooking up the base with some waste

The Cheesecake Factory container and various other plastics from the restaurant.

My first step was collecting plastic materials to create the gondola. I decided to use a (PET) plastic Cheesecake Factory cake to-go container to make the base of the Gondola to carry the eggs. I chose this container due to its ability to close with a locking mechanism that seemed to not open even if it was carrying a significant amount of weight. Because the container was oddly shaped in the black portion, I decided to use the clear portion as the part that actually holds the eggs. Next, I used a plastic bag (HDPE) and also from the Cheesecake Factory to act as a shock absorber for the eggs on the floor of the gondola and the edges.

Zip-locking the eggs into place.

I wanted to ensure that the eggs did not move from their position and bump into each other during motion so I needed a way to secure them in place. I decided I would try to create a sort of “seat belt” to hold them in place by using a plastic (LDPE) zip-loc bag I found in the garbage in the BTU lab. As we were encouraged not to use tape, I tore the plastic bag into 3 roughly equal parts and for each part, used a heat gun to melt the plastic pieces into rings to go around each of the eggs. To secure the rings to the gondola, I melted a small piece of each ring and stuck it to the plastic bag in the base of the gondola.

“Hooking” up the straw

I needed to create a way for the hook to be able to connect to the gondola on the test day. I utilized a straw from the ATLAS Cafe to put through the container (I cut holes in both sides of the container for the straw). The friction of the straw seemed to be strong enough to prevent it from easily coming out so I did not bother with melting more plastic to stick it. To be able to connect the hook, I cut a small square in the top of the container directly above the straw.

Walking on eggshells

Due to team travel for the final Cross Country Pac-12 Championships ever, I was not in class for the launch day of our gondolas. I did however FaceTime in to watch my gondola get launched. Unfortunately all of my eggs broke. While I could not get a very good look at the setup as well as how the eggs were placed in the container, I wasn’t expecting the line to end with a solid wall that my gondola would hit. I thought the line would end with a stop near the hook causing the gondola to swing rather than slam into something. This slamming action seemed to cause the container to open and everything to spill out with all 3 of my eggs broken. If I had known this prior I think I would have designed a sort of cushion to slow the impact of the entire gondola to. I could have done this potentially by inflating a plastic bag and connecting it to the impact side of the gondola. I also might have wanted to reinforce the locking mechanism to ensure that there was no way the case would open.

Categories
Uncategorized

Helvetica Reflection

My (broken) central vacuum system.

I think the designer chose Helvetica for the Central Vacuum Sales -Repair Parts because they needed their companies name and service offerings to be visible from a distance on their small sticker ad. I think this is effective as it allows me to see where I can get help if my vacuum breaks as I would probably be looking at the system trying to diagnose the problem if it were to stop working. I think their logo is extremely boring though.

I chose the word omnipresent because it reflects the fact that Helvetica is found literally everywhere. In the film, some of the people who criticize Helvetica stated that it was the font of capitalism (though some argued it was socialism as literally anyone could use it). Helvetica is famous for its ability to be neutral, while at the same time, being easy to read. These two characteristics are what makes Helvetica such an easy choice as a font. However, at the same time because everybody uses, it has sort of become bland, and does not have any sort of personality to it. One of the things I found notable about the film, was how they compared a choice of font to someone auditioning for a part in a film. If the film decides to go with the inferior actor for the job, it won’t necessarily prevent people from being able to follow the plot of the movie. They just won’t connect with it in the same way as if they chose the better actor for the job, this is the same situation with font choices. Helvetica will get the job done for being readable but if you want to go the extra mile and communicate something that resonates with someone it’s worth considering other options.

Categories
Uncategorized

Project 1 – Wood Polygon

Final product

Wood. It’s the first thing you collect in Minecraft to craft a crafting table, which then allows you to craft countless other items. Unfortunately, crafting in real life is not as easy as punching a tree and clicking a button.

The Physical Unknown

My entire life, I have been known as the tech guy. I can confidently say that I can fix any software problem you ask me for help with and I can whip up iOS and Mac apps to solve various problems in no time at all. Digital technological understanding has always been a gift of mine and skills in utilizing digital tools to create and solve problems are skills that I continuously have worked to continue to sharpen. However, using physical tools, crafting, and visualizing 3D structures is something that I am extremely unfamiliar with. When starting this project, I found myself at a total loss of any idea on where and to start. My complete lack of confidence with working with physical goods, using power tools, and subpar hand control made this project extremely difficult for me to begin.

Selecting a shape

Triangular Pyramid (etc.usf.edu)

For this project, I was tasked with creating a convex polyhedron from a 0.75″x 5.5″ x 12″ plank of hardwood. I choose to use popler as my hardwood given that it was the only plank type remaining in the lab to my knowledge. I decided I would attempt to create a triangular pyramid consisting of 4 triangles.

Marking the board.

To cut the piece, I drew lines every 3 inches on the board and then drew 3 triangles with pencil to aid in lining the blade for cutting.

Chop till ya drop

My next step was to cut the triangles. I received advice to cut one triangle and then trace that on the board before cutting more, that way I could eliminate imperfections in my drawing of the lines. I used the band saw to cut the triangles.

I realized I needed to have angles on the sides of each triangle to be able to connect them together without large gaps. I tried tilting the band saw plate at an angle and was able to get a few good cuts. However, I struggled to cut a perfect straight line every time and messed up drastically on multiple edges. I eventually realized I needed to start over if I was going to do anything that resembled a pyramid.

The failed prototype

Taking a new approach

After consulting with the Danny, I was given the suggestion of gluing together the triangle scraps from my failed prototype and “sculpting through subtraction”. This would allow me to avoid the difficulty of measuring and cutting precise angles in the wood to make a shape. I decided that in addition to gluing the scraps together, I would cut a new board into pieces and glue those together, this way I would have a second chance to sculpt a solid if I were to critically mess up.

The glued together scraps.

Saw, Sand, Repeat

Due to the unevenness of the stacked triangles I glued together, I decided that I would utilize the newly glued triangles as my first attempt at sculpting. My goal was to even out the piece so that there were no gaps between the triangles. This meant that I would have to remove all of the excess wood until each triangle was the same size as the smallest triangle I glued together.

Working on the belt sander

At first, I attempted to utilize the belt sander alone to get the pieces to even out. This was taking an extremely long time, so I decided to use the band saw instead.

Making a triangle with the band saw

With the band saw, I successfully cut the triangle into a singular triangular prism shape with only one crevice. I was then able to sand the remaining crevice off using the belt sander.

Building the other block

Having been satisfied with the triangle shape I was able to make, I decided to try carving the other block I had made by gluing freshly cut rectangular prisms together. I started off by using the band saw to cut the uneven parts of the rectangular prisms as well as any excess glue that remained. To my surprise, I was able to get an extremely smooth wood block that was difficult to determine that it was created through gluing multiple rectangular prisms together.

Combining the two blocks.

Given that I wanted something more complicated than a thick rectangular prism, I decided I would attempt to connect both the mini triangular prism and the rectangular prism together. To do this, I thought it would be useful to use a dowel joint.

The dowel joint print

I drilled a hole in the larger block and then used a bit of paint to help me figure out where I should drill the hole in the smaller part. Next, I glued the dowel in and hammered it into the larger block before going to cut it. This took quite a bit of hammering.

The dowel in the block

After getting the dowel in, I cut a bit off and drilled the hole in the other smaller triangular prism.

The dowel connection attempt

I then tried to connect the two pieces together. The dowel was hard to get in as I might not have cut deep enough in the smaller piece. After attempting to hammer the pieces together, I was able to get the dowel inside, however there was a gap between the two pieces that I could not seem to close. After hammering some more, I decided I would give up on the dowel joint and just glue the faces together. I removed the dowel and sawed/sanded the areas of the pieces with paint on it.

Death of the dowel
Faces of the two parts glued together (and drying).

Trimming and Curving

Now that I had both pieces connected, I sawed off areas that had glue and other imperfections.

Sawing off imperfections

Next was on to sanding, I decided it might be cool if I made the piece have a rounded aspect to it. I ended up using the curved edge of the belt sander to make a unique curve (skateboard ramp like) shape on the block.

I tried to eliminate evidence of the glueing of the two pieces together the best I could through additional sanding. I also used this opportunity to sand all sides of the piece to make it more smooth.

Finishing up

The last step was to add some oil to finish the piece. I added a little bit of what I think was some sort of seed oil (I do not remember the name). I only had time to do one coating, but I was satisfied with the color. The final step was to take some photos of my piece (with my brand new iPhone 15 Pro).

Final Photos

Categories
Uncategorized

Draw a Tree

Pagoda Dogwood Tree (Pretty sure unless my map skills are bad) near the UMC
My attempt at drawing the tree.

During this sketch session I noticed that the trees were planted in little cutout squares in the ground. I wonder if this was done for aesthetic or to prevent the tree from competing

I noticed that some of the leaves seemed to have started to change color a bit. The general leaf structure looked like this:

Below was another leaf that was on the tree but less common than the previous leaf type had these little fruit like objects attached.

I wonder what the ratio between these leaf types are.

Categories
Uncategorized

Material 1:

Prompt: “In our first class session, we discussed our favorite objects. Write a short post (~150-200 words) about what object you chose, why it’s special, and what materials it’s made from. Include at least one photo of the object.”

I chose my laptop as my favorite object. It is a MacBook Pro 2021 with an M1 Pro processor. My Mac is special to me because it allows me to do a lot of creative things such as designing logos, making mobile applications, websites, editing videos and more. My laptop also allows me to conduct tech-support for my friends and family remotely and also be able to play the occasional computer game. I can do my homework assignments, read, write, blog, and watch YouTube videos to expand my knowledge of anything and everything with the power of the internet. The Mac keyboard lets me write significantly faster compared to a phone or tablet so I can get things done with ease. The device is composed of many materials including plastic, aluminum, tin, and gold. It also contains different rare earth elements. With my MacBook in hand, I am an unstoppable force.

My current MacBook Pro (left) vs. my previous MacBook Pro (right) with GeekBench scores.

NOTE: I am currently working on reorganizing my servers. I want to move some of them to a 3rd party provider while keeping some on site. I will have this blog separated from my other projects soon.

Categories
Uncategorized

Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!