Category: Uncategorized

  • “The Viper”


    Vehicle designed for Trappist 1-e


    Definition Statement:

    Our mission is to build a vehicle that can:

    • withstand Trappist-1e’s extreme contrasting temperatures
    • traverse the uneven and rocky terrain
    • and endure the immense radiation emitted by Trappist-1e’s star

    Additionally, the vehicle must be large enough to hold at least four individuals and have enough energy to travel 10km.


    The Problem:

    We need a vehicle that can travel on the planet Trappist 1-e

    Trappist 1-e had a rocky and dusty surface, similar to that of Earth


    Brainstorming:

    We brainstormed a few versions to arrive at our final design:

    1. The Hover Board System: We thought of an idea to attach a hover board underneath the vehicle so it can float on top of the rocks and uneven terrain
      • We figured this concept would be hard to create and, at the same time, energy-inefficient.

    2. The Motorcycle: The second idea we had was a motorcycle with a solid outer shell. It would be easy to turn and would be fast.

    • We realized the design was flawed because the vehicle’s 2 wheels could be imbalanced and unable to support the weight of our entire crew and equipment.

    3. The Rocker-Bogie System (what we settled on): The third idea was the rocker-bogie system, similar to those used in Mars vehicles. It consists of two arms that work together to climb uneven surfaces.

    • Visual Representation of the vehicle (created by AI)

    Role of the Test:

    The test we performed was crucial for evaluating whether our vehicle can operate under conditions similar to those on Trappist-1e. We were able to see the vehicle in operation rather than viewing it virtually in platforms like Tinkercad.

    The primary goal of the test is to measure the energy efficiency and mobility. By testing the vehicle on both a dust-and-gravel surface and a smooth surface, we compared how terrain roughness affects current draw, energy consumption, and overall efficiency. The smooth surface served as the control condition, while the gravel tests simulated the rocky terrain present on Trappist-1e.

    Through testing, we aim to understand how the rocker bogie system improves our stability and traction on the ground. We also hope to understand the difference in the energy required for the vehicle to travel on rough and smooth surfaces.


    The Method and the Procedure: The Rocker-Bogie System

    We finally settled on the rocker-bogie suspension system, a suspension system used on Mars rovers. It includes 3 main parts on each side of the vehicle:

    1. A rocker arm ( the long arm)
    2. A bogie arm ( the short arm)
    3. 3 wheels per side (2 connected to the short arm and 1 connected to the long arm)
    • Above is a simple diagram of a rocker-bogie system

    The Benefits of the Rocker Bogie System:

    1. Improves traction
    2. Reduces wheel slip
    3. Makes energy use more efficient on uneven terrain

    The Rocker Arm (the long arm)

    • The rocker arm is the main structural component of the rocker-bogie system.
    • It connects the front wheel to the chassis (the body) and allows the wheel to rotate upward when encountering obstacles.
    • This movement helps keep the rover stable and ensures continuous contact between the wheels and the ground.

    The Bogie Arm (the short arm)

    • The bogie arm is the shorter component of the rocker-bogie suspension system and connects the middle and rear wheels on each side of the rover.
    • It is hinged to the rocker arm, allowing the two rear wheels to move independently when travelling over uneven terrain.
    • This design helps distribute the rover’s weight more evenly and reduces the chance of wheel lift or loss of traction.

    The Chassis (the body)

    • This is the body of the rover
    • Includes mounting points for the rocker arm
    • The cutout in the middle of the body is designed so that the wires from the TT motors can connect to the breadboard.

    Screw Head

    • This screw head attaches to the screw base and serves as a pivot point for the connection points between the chassis and the rocker arm, and between the rocker arm and the bogie arm.

    Screw Base

    Screw Assembly

    • This demonstrates how the screw head and screw base can connect components.

    Connecting the Chassis to the Rocker

    • We use the screw in order to attach the rocker arm to the chassis, and in order to attach the rocker arm to the bogie arm

    Mechanical Drawing

    • This is the mechanical drawing of all vehicle components.
    • The screw head and screw base each have 3 drawings from different angles.
    • The chassis has 3 different drawings showing it from different angles.
    • All measurements are in millimetres (mm)

    TinkerCAD:

    Video of design in motion:

    • We used TinkerCAD to simulate the network and circuit of the vehicle
      • We used 6 TT motors (3 on each side of the vehicle)
      • 1 breadboard
      • 4 AA batteries
      • A push button
    • Above is the circuit diagram for our vehicle

    Prototype Photos:

    • The black box holds 4 AA batteries and contains a button to turn the vehicle on and off
    • TT motors are attached to the wheel, the rocker, and the bogie arms.
    • We used a combination of Gorilla Glue, Super Glue, and tape to strengthen the connection between the motors and the arms.
    • Cutout on the bottom of the vehicle for the wires from the motors to connect to the breadboard.
    • Screws are used to connect the rocker arms to the chassis.

    Vehicle Tests:


    The tests actually went pretty smoothly:

    Test 1: Gravel surface

    • Temperature: 3 °C
    • Distance travelled: 106 inches = 2.692 m
    • Time: 11.5 s
    • Mass of rover: 1184.2 g = 1.184 kg

    Electrical Measurements:

    • Because the vehicle did not maintain a steady voltage during the test, we calculated an average voltage from the pre- and post-test readings.

    Current Measurements:

    • During the test, the electrical current drawn by the rover’s motors was not constant.
    • As the rover moved through the uneven terrains, the motors drew varying amounts of current at different times.
    • To account for this variation, we measured current at 2-second intervals while the rover was in motion.

    Energy Input:

    Efficiency Calculation:

    • In this project, efficiency is defined as distance travelled per unit of energy input (m/J), rather than thermodynamic efficiency.
    • This value describes how effectively the rover converts electrical energy into forward motion.

    Test 2: Smooth Surface

    • Temperature: 3 °C
    • Distance travelled: 106 inches = 2.692 m
    • Time: 8.77 seconds
    • Mass of rover: 1184.2 g = 1.184 kg

    Electrical Measurements:

    Current Measurements:

    Energy Input:

    Efficiency Calculation:


    Comparative Efficiency (Test 1 and 2):

    • This means that the rover operates at approximately 72% efficiency on gravel compared to a smooth surface.
    • This decrease in efficiency is expected due to increased rolling resistance, wheel slip, and energy loss when traversing uneven terrain.
    • Despite this reduction, the rover maintained stable motion and consistent traction, demonstrating that the rocker-bogie suspension system effectively supports traversal on rocky surfaces similar to those expected on TRAPPIST-1e.

    Why we used this approach:

    • By comparing the rover’s efficiency on gravel to its efficiency on a smooth surface, we isolated the effect of terrain roughness while keeping all other variables constant, including vehicle mass, motor configuration, battery type, and test distance.
    • The smooth surface test acts as a baseline representing near-ideal operating conditions, while the gravel test simulates the rocky terrain expected on TRAPPIST-1e.
      • This comparison enables us to evaluate how well the rocker-bogie suspension system maintains performance in realistic terrain.

    Implication for Trappist 1-e

    • The results of our tests provided insights into the vehicle’s performance on Trappist-1e.
    • Our vehicle operates at approximately 72% efficiency on gravel compared to a smooth surface, which closely simulates the rocky terrain expected on TRAPPIST-1e.
    • The decrease in vehicle efficiency on rocky surfaces suggests that rough terrain significantly increases energy consumption due to higher resistance, wheel slip, and energy losses during climbing.
    • Despite reduced efficiency, our rover maintained stable motion and continuous traction during the gravel test, suggesting that the rocker-bogie system is well-suited to the conditions of Trappist-1e.

    Conclusion:

    Based on our tests, the vehicle can traverse both smooth and rocky surfaces without issues such as stutters or incidents where it can’t push over rocks.

    • Our vehicle did not encounter any issues regarding the direction it was travelling and maintained a good and steady pace throughout the test

    This shows that the rocker bogie system improved the vehicle’s stability and its ability to climb rocky surfaces.


    Possible Improvements:

    After reviewing our vehicle’s performance in the tests, we could definitely see room for improvement.

    1. Improving Wheel Traction: A grippier wheel surface would reduce slipping on loose gravel and improve overall vehicle stability.

    2. Distance between the wheels on the rocker arms and the bogie arms: We see that the distance between the wheels attached to the rocker arms and the bogie arms is not as far apart as we wanted.

    • If we were to increase the gap between the wheels, the vehicle would be able to climb uneven surfaces more effectively, since it would be able to utilize the full benefits of the rocker bogie system

    3. Better Weight Distribution:

    • As shown in this image, the battery and breadboard don’t have a fixed slot to slide into and fit properly.
    • This caused the vehicle’s contents (battery and motherboard) to shift within the vehicle on uneven terrain.
    • Creating fixed slots would definitely help the vehicle achieve a more balanced state and better weight distribution.

    Use of AI

    • ChatGPT was used to plan and support the vehicle design, prototyping, and testing stages of this project.
  • Trappist-1 e


    Why Trappist-1e?

    • The planet is likely rocky and dense, with a thin/moderate atomsphere (possibly containning carbon dioxide, nitrogen, or water vapor).
      • This is similar to the structure on Earth and would be great to build bases and other structures.
    • The JWST (James Webb Space Telescope) suggests that Trappist 1 e is warm enough for liquid water.
      • This is great since it is possible to have water on the planet and it will not just evaporate.
    • The JWST also did not detect a thick hydrogen-dominated atomsphere, which helps rule out a Neptune-like gas layer.
      • This is great because we can eliminate the possibilty of this planet to be a gas giant and that it will have solid ground.

    Opportunity 1: Liquid-water stability


    Although we are unsure if there is water on the planet, the planet orbits inside the star’s habitable zone, where temperatures could theoretically allow liquid water to exist.

    JWST also confirmed that TRAPPIST-1e does not have a thick hydrogen atmosphere, meaning it is more likely to resemble an Earth-like rocky planet rather than a gas-dominated mini-Neptune. This creates an opportunity because liquid water is one of the most important requirements for human survival.


    Opportunity 2: Rocky Surface


    Research shows that it has a rocky surface similar to Earth. This means it has a solid surface suitable for our rover to easily travel across. Our rover will be able to use wheels instead of needing wings or other ways to transport.


    Opportunity 3: Possible Atomsphere


    JWST’s infrared observations ruled out the possibility of a thick atmosphere, but they did not confirm whether TRAPPIST-1e currently has a thinner, Earth-like atmosphere or none at all.

    This presents itself with an opportunity for a manmade atmosphere perhaps.


    Challenges:

    • Radiation and stellar: the planet orbits a red-dwarf star which can release flares that are radioactive and can strip away the atmosphere and destroy surface life
    • Possible Thin Atmosphere (Not Confirmed):Current JWST observations show that TRAPPIST-1e does not have a thick hydrogen-dominated atmosphere. However, scientists still do not know whether it has a thinner secondary atmosphere, such as carbon dioxide or nitrogen, or no atmosphere at all. If TRAPPIST-1e does have a thin atmosphere, it would provide very little protection from stellar radiation and would struggle to maintain stable temperatures. Our rover need to take into consideration the uncertainty in order to gaurantee the safety of our astronauts.
    • Dim sunlight from Red Dwarf: Trappist-1e mainly receives infrared light (M-type star), which is weaker compared to sunlight (G-type star) we receive on Earth.

    Implications for vehicle design:

    • Landing:
      • There is no thick atmosphere.
      • meaning that there isn’t enough air to slow down the aircraft/vehicle as it lands.
      • We need to use rockets in order to land safely.
    • Surface Rovers:
      • The planet is rocky -> so we have to use tires/wheels and can climb rocky surfaces.
      • The planet is possibly tidally locked, with one side that’s hot and one side that’s cold -> meaning we would have to have a sophisticated heating and cooling system, an outside layer that could stand both high and low temperatures, and tires that can endure the temperatures and changes.
    • Radiation shielding:
      • The planet is exposed to radiation by harmful flares -> meaning we have to create a thick shielding on the outside of our vehicle to stop the radiation from getting in.
    • Power systems:
      • Because the light on the planet peaks at infra red, we are not able to get the same amount of light as when exposed to our sun -> this means that solar panels will not recieve enough energy and instead, we have to develope solar panels that is specific for infrared light.

    How do we know what we know:

    • Teappist 1-e was first found in 2017 using the Trappist telescope in Chile and was confirmed later with NASA’s Spitzer Space Telescope.
      • They used the Transit Method: watching tiny dips in the star’s brightness everytime a planet crossed in front of it.
    • NASA also used the James Webb Telescope and recorded infrared spectra, which are patterns of light thta change depending on which gases are in the atom’s atmosphere.
      • When TRAPPIST-1 e passed in front of its star, some starlight filtered through the planet’s air (if it has one).
      • Using the process of transmission spectroscopy
        (studying which wavelengths of light were absorbed) we are able to identify the chemical makeup of the atmosphere.

    Sources Used (APA Format)



    Gillon, M. et al. (2017). Seven temperate terrestrial planets around the nearby ultracool dwarf star TRAPPIST-1. Nature, 542(7642), 456–460. 



    NASA. (2024, September 8). NASA Webb Looks at Earth-Sized, Habitable-Zone Exoplanet TRAPPIST-1 e. NASA Science.



    NASA Exoplanet Catalog. (2025). TRAPPIST-1 e. NASA Science.



    NASA. (2018). 10 Things: All About TRAPPIST-1. NASA Science.



    AI Use Statement

    I used ChatGPT to help me research and organize information about TRAPPIST-1 e, and all facts in my blog post is sourced directly from NASA’s official science pages and publications.

  • Simple Fan

    I am brand new to Tinker CAD and Robotics, just like I am in the previous 2 projects. I had to figure out something that is easy to do and at the same time help me develop my knowledge in Tinker CAD and Robotics.

    The Failed Attempt:

    My first idea was to create a mini bumper bot that has 2 buttons on the sides and will turn to the opposite direction when 1 is pressed.

    I worked on it for a long time but ran into too many problems that can’t be understood with my current skill level (basically 0 knowledge).

    The New Project:

    After the failed attempt to make a bumper bot, I though about a new project idea, something that is not as easy but also doable.

    I asked ChatGPT for some inspiration and decided to make a small fan.

    The Intended Device

    It is basically a small fan that is powered by a small DC motor that spins when the pushbutton is pressed, and when the button is released, the fan stops.

    How doe sthe circuit work:

    • The Arduino Uno sends control signals to the L293D chip, which makes the motor spin.
    • L293D
      • Pin 16 connects to 5V on the Arduino Uno to power the. chip logic
      • Pin 8 connects to the 3V battery to power the motor.
    • The motor is connected to pins 3 and 6 of the L293D, which helps the motor spin in different directions.
    • Pin 1 of L293D is connected to 5V on the Arduino Uno so that side of the chip is enabled.
    • I made a shared ground for the GND at the second last row of the breadboard so that all GNDs are connected and is prevented from explosions or shorts.
    • A pushbutton is placed across the center gap of the breadboard and connected between pin 7 on the Arduino Uno and the ground.
      • When the button is pressed, it sends a signal to the chip to spin the motor, and when it is released, it stops the motor.

    Bill of Materials (BOM):

    ComponentQuantityPurpose
    Arduino Uno1Main microcontroller
    Breadboard1For wiring connections
    L293D Motor Driver IC1Controls motor direction and power
    DC Motor1Acts as the fan motor
    3 V Battery1Motor power supply
    Pushbutton1Manual motor control
    Jumper wires~10Electrical connections

    Circuit Diagram

    Code:

    This is my code for the small fan

    const int IN1 = 9;    
    const int IN2 = 8;    
    const int BUTTON = 7; 
    
    void setup() {
      pinMode(IN1, OUTPUT);
      pinMode(IN2, OUTPUT);
      pinMode(BUTTON, INPUT_PULLUP); 
    }
    
    void loop() {
      int buttonState = digitalRead(BUTTON);
    
      if (buttonState == LOW) {
        
        digitalWrite(IN1, HIGH);
        digitalWrite(IN2, LOW);
      } else {
        
        digitalWrite(IN1, LOW);
        digitalWrite(IN2, LOW);
      }
    }

    The first 3 lines tells the Arduino which pins are connected:

    const int IN1 = 9;  
    const int IN2 = 8;    
    const int BUTTON = 7
    • Pin 8 and 9 controls the motor
    • Pin 7 is connected to the pushbutton

    In the setup part, the Arduino prepares the pins so that:

    void setup() {
      pinMode(IN1, OUTPUT);
      pinMode(IN2, OUTPUT);
      pinMode(BUTTON, INPUT_PULLUP); // uses internal resistor
    }
    • The motor pins (9 and 8) are set as outputs so the Arduino is able to send power signals.
    • The button pin (7) is set as an input with a built-in resistor (INPUT_PULLUP), which keeps it not moving when not pressed.

    The loop will run over and over:

    void loop() {
      int buttonState = digitalRead(BUTTON);
    
      if (buttonState == LOW) {
        // button pressed → spin fan
        digitalWrite(IN1, HIGH);
        digitalWrite(IN2, LOW);
      } else {
        // button released → stop fan
        digitalWrite(IN1, LOW);
        digitalWrite(IN2, LOW);
      }
    • The Arduino checks if the button is pressed (digitalRead(BUTTON)).
    • If the button is pressed, then the Arduino sends power to the motor and it spins.
    • If the button is not pressed, it cuts power and the motor stops.

    Demonstration Video:

    • After pressing the button, the motor (fan) spins and when I release it, the motor stops spinning.

    Reflection on the Use of AI:

    I used Chat GPT as my AI to help me

    Process:

    • At first, I wanted to build a bumper bot, but it kept failing and shorting out. After I talked to AI about it and considering many suggestions, I switched to a fan which is simpler and easier for me.
    • The Ai helped me understand the logic of the circuits and explained how each component played a role in my design.

    How it worked for me:

    • The way that I asked the Ai to help me really worked for me because I am not just getting answers but rather getting suggestions and a deeper understanding for each component.
  • CAD Assignment

    For this project, I decided to go with something that is beginner friendly and something that I may be able to use. I asked AI for several ideas and I decided on creating a desk organizer that includes a stand for my phone since it is always laying around the desk not doing much.

    I started with thinking about the things that i would like to put in the organizer (since I might print it out and use it)

    A phone stand, a container for pens, a pocket for my AirPods, and a few more extra spaces for other things.

    Left tall container -> for my pens

    Center block: my phone stand (with my initials on it)

    The rectangle at the right to the middle: space for my Airpods

    Other spaces scattered around: for different little objects that I might need

    Now that you have seen the entire organizer, lets break it down part by part:

    The Blueprint:

    This shows all the parts that were used to make the organizer. The main body is shown in 4 drawings, from the front, from the top, from the bottom, and an isometric drawing.

    The Skeleton:

    This is the skeleton of the dinasor, the bones of the organizer.

    I created this by first drawing a sketch:

    You can see here I have a lot of measurements.

    • I have an Iphone 15 Pro Max and I wanted it to stand: thats why I created the slot at the top of the drwaing with a 90mm length, so that the phone can fit in and still have a bit of space on the sides.
    • I have a pair of Airpods: so I gave him a big roon, with 65mm of length and 50mm of width.
    • I dont have a lot of pens: so I just created a container with a 58mm diameter so that I can fit 3-4 pens that I use daily.

    Adding on the meat…

    From the sketch comes the extrusion of the base of the organizer, with a depth of 10mm.

    Then I extruded these 2 highlighted parts since I wanted them to come out of the organizer rather than sinking in.

    Then I exturded this highlighted part. This will be te stand for my phone and I also extruded my initials (2mm dent)to add a bit more of customization.

    I transformed the phonestand so it slants backwards and so that I am able to leave a room to put my phone in and having the stand as my back.

    Fine tunning the edges…

    These highlighted parts have been “fillet”/smoothed out. This makes the organizer safer (preventing cuts) and also makig it look a lot better than with sharp edges.

    This is a close in picture of a fillet…

    Adding on the scales…

    What I mean by scales are the plates that I add under the skeleton and the meat. This is for filling the holes so that I could actually use the oragizer.

    Without the scales:

    With the scales:

    I added the scales seperately because it looks pretty good from the bottom, instead of having just a flat base, I am able to have the plates sticking out a bit, kind of like little legs:

    Assembly:

    Assembly is where I put all of my parts together. I have 10 parts and in assembly I put them all together to create the final organizer.

    As you can see here, I used sliders to connect the base covers to the base plate.

    This is an example of a base cover that I use slider to mount onto the base plate.

    Bill of Materials (BOM):

    So as you can see here, I decided to make the organizer out of mostly PLA since it is an organizer and would need to be stable and long lasting.

    I was wondering whether making the organizer entirely out of PLA would not look that great and not really unique from the other desk organizers I can find in IKEA or Walmart.

    Then the idea of making the base plate (the Skeleton) out carbon fibber might be a good idea since I really like the sporty look of carbon fibber and it will look high end and modern.

    I also wanted the PLA to be white so that I can have some contrast to the carbon fibber and it would look good since white goes well with black always.

    Below is a picture of BOM with the mechanical drawings:

    The Final Product:

    This is an illustration of the final product in the materials that I would like it to be in.

    I feel like it is pretty modern looking and it kind of reminds me of Channel.

    I would definitely want to print it out and show it off to my friends.

    Be Sure to Check Out the New Channel Desk Organizer!

    Link to Onshape:

  • Fishing -Frenzy


    When the coding project is announced, my mind went blank. After sometime, figured that I would make something related to my interests.

    I thought about making a sports game that would allow the player to make a team and earn money fighting against other layers, but I soon realized that it will be difficult to complete with Python and my existing knowledge base.

    Shifting the gears, I decided to focus on another of my hobbies, fishing. A game that will combine mysteriousness, surprises, and most importantly money$$$!


    And here is my masterpiece:


    Code:

    https://colab.research.google.com/drive/15x2X9p3_MtEyr3D5FrMhJc9bTKJeLkzr


    Flowchart:


    1. The Game Setup:

    import random
    
    fish_values = {
        "Tuna": 20,
        "Salmon": 15,
        "Sardine": 5,
        "Pufferfish": -5,
        "Shark": -10,
        "an soggy boot": 0
    }

    This is all the kinds of fish you will be able to fish from the ocean, some of them more desirable than others.

    If you caught a pufferfish, unfortunately, you are not able to eat it and it is a waste of time, making you lose $5.

    If you fished a shark, well good luck! He is going to take your fishing rod with him and maybe some of your bait as well. A shark will make you lose $10.

    If you fished out a boot… well I dont know what to say about that, improve our fishing skills dude. You will not get anything form it.

    Other than the 3 mentioned above, all others have positive values, meaning you can sell them and earn money (Sardine: $5, Salmon: $15, and Tuna: $20.)


    2. Initial Conditions:

    player_score = 0
    total_tries = 6
    
    available_fish = list(fish_values.keys())

    This part of the code sets up the game.

    It is saying that the player will start with $0, since he did not cast his line yet.

    It is also saying that the player has 6 tries to fish out as much value as possible and the available fish = the list of all possible catches.


    3. Game Intro:

    print("What a nice day! I think I will go fishing beside the ocean...")
    print("-" * 50)

    This will display a short message to the player at the start of the game.


    4. The Fishing Loop

    for try_number in range(1, total_tries + 1):
        input(f"\nPress Enter to cast the line... (Try {try_number} of {total_tries})")
    
        caught_fish = random.choice(available_fish)
    
        fish_worth = fish_values[caught_fish]

    The player presses “Enter” to cast the line.

    A random fish is chosen from the list of available fish.

    The worth of the fish is looked up from the code before.


    5. The Value of The Catch

    if fish_worth > 0:
            print(f"Casting the line... AYYY! What a dime! I caught a {caught_fish}! It's worth ${fish_worth}.")
        elif fish_worth < 0:
            print(f"Oh shoot! A freaking {caught_fish}. Man, what a bad cast! I lost freaking ${abs(fish_worth)}!")
        else:
            print(f"Damn, {caught_fish}... To the garbage it goes.")

    If the value of the fish caught is positive, its a good catch (Earns money).

    If the fish has a negative value, its a bad catch (money lost).

    If the value is 0, its worthless (no money earned or lost).


    6. Total Up the Score

    player_score += fish_worth
    
    print(f"${player_score} in the bank!")

    Adds/subtracts fish value from the total score.

    Prints the updated balance after each cast.


    7. The Game Ends

    print("\n" + "=" * 50)
    print("Well, I better get back before lunch!")
    print(f"Today's catch is worth a whooping: ${player_score}")
    print("=" * 50)

    After the player casted 6 times, the game ends.

    Then the total value of the cast will be displayed.

    8. Calling the Function

    def go_fishing():
    ...
    
    go_fishing()

    These 2 lines of codes allow me to name and call the function, which is the whole process form casting to getting the fish.


    Reflection:

    In summary I think I did a great job on the project.

    Although it is a simple game, I think I came up with a pretty interesting idea.

    I think instead of making something to do with math or things that require great mental power, a game that is interesting and simple to play is a great way for you to relax after a long day of hard work.