3 Hands-On Experiments with OpenAI’s o1 You Need to See

anu81685 16 Sep, 2024
8 min read

Introduction

How often do you truly think and reason before you speak? The current state-of-the-art LLM, GPT-4o, was already delivering impressive responses without taking much time to respond. But imagine if it started taking more time to think and build logic. With their latest model, o1, OpenAI has dropped a bombshell, introducing LLMs that can genuinely think and reason before responding—an ability that, until now, was considered unique to only a few humans!

OpenAI’s o1 is a new series of AI models designed to invest more time in thinking before generating a response. Outperforming all previous versions and even many humans on various platforms like the USA Math Olympiad (AIME), GPQA evaluation, and Codeforces, the o1 series marks OpenAI’s significant step toward AGI. The two models—OpenAI o1 and OpenAI o1-mini—excel in reasoning, science, coding, and mathematics!

So, in this blog, I decided to conduct some o1 experiments and put OpenAI o1 to the test! I carried out three experiments involving physics, chemistry, and biology, combined with the magic of math and coding, to serve you the perfect dish prepared by o1.

Read on to discover the results of my experiments with OpenAI o1.

Overview

  • Understand the scope of OpenAi’s o1 model in the world of Science, reasoning and logic. 
  • Visualise the possibilities with OpenAI’s o1 in the field of Physics, Chemistry and Biology.

The Power of Visuals in Education

The biggest challenge that people face when it comes to science is the lack of visualization! Imagine for most of us, the word “gravity” simply reminds us of an apple falling on Newton’s head. Visualization not only enhances the learning experience but helps us retain that lesson in our memory for a longer period. The idea of creating simulations/visualizations of scientific concepts isn’t really a breaking news. But the power to create these visualisations without writing a single line of code, to design interactive systems that go beyond following a set of rules while integrating logic & reasoning is definitely new. 

With the Open AI’s o1 model, I did just that!

I presented one problem each from physics, chemistry, and Biology to OpenAI’s o1 model. The solutions to these problems required logical reasoning, mathematical calculations, and extensive coding, and o1 blew my mind with the results!

Before we move on to the o1 experiments, I recommend you go through our article on How to Access OpenAI o1!

Experiment 1: Playing with Planets (Physics) 🪐

Let me start with a quick revision of our solar system: It consists of 8 planets: Mercury, Venus, Earth, Mars, Jupiter, Uranus, Saturn and Neptune. The Sun is at the center of our solar system around which the planets revolve. Sounds simple right?

Now all these planets are at different distances from the sun and revolve around it in unique orbits, at different speeds. The speed of a planet around the sun is generally calculated using the following formula:

v = √(GM/r)

where:

  • v is the velocity of the planet
  • G is the universal gravitational constant
  • M is the mass of the Sun
  • r is the radius or distance of the planet from the Sun

Lets say you want to visualise the changes in velocity of a planet by changing the radius of the planet or the mass of the sun. All you need to do is prompt OpenAI’s o1 to write the code to build this visualisation.

Prompt

I want to create a scientifically accurate simulation of our solar system with all 8 planets revolving around the Sun at their unique speeds. The simulation should include the following features:

  1. Adjustable Parameters:
    • Include sliders (drag bars) below the simulation to adjust the following for each planet and the Sun:
      • Mass
      • Radius
    • Adjusting the mass of the Sun should affect the orbital speeds of the planets.
    • Adjusting a planet’s mass and radius should change its representation in the simulation (size and possibly color), but its own mass doesn’t significantly affect its orbit due to the Sun’s dominant mass.
  2. Visual Enhancements:
    • All planets and the Sun must be clearly labeled in the simulation with white text for visibility against the space background.
    • The orbits of the planets should be displayed as paths around the Sun.
    • When a parameter is adjusted, the corresponding planet (or Sun) should be highlighted in the simulation for a brief period (e.g., with a red rectangle) to indicate which celestial body was changed.
  3. User Interface:
    • The text in front of each slider should be in black for readability.
    • The controls should be organized in clear rows in a table, following the order of the planets in the solar system
    • For each celestial body, the format should be:
      • Name of the planet or Sun
      • Mass slider
      • Radius slider

Output

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Solar System Simulation</title>
    <style>
        /* Canvas styling */
        #simulationCanvas {
            background-color: #000;
            display: block;
            margin: 0 auto;
            border: 1px solid #ccc;
        }
        /* Control panel styling */
        #controls {
            width: 800px;
            margin: 20px auto;
            color: #000;
            font-family: Arial, sans-serif;
        }
        #controls table {
            width: 100%;
            border-collapse: collapse;
        }
        #controls td {
            padding: 5px;
            vertical-align: middle;
        }
        #controls label {
            display: block;
            margin-bottom: 5px;
        }
        input[type="range"] {
            width: 100%;
        }
        h2 {
            text-align: center;
            color: #000;
        }
    </style>
</head>
<body>
    <h2>Solar System Simulation</h2>
    <canvas id="simulationCanvas" width="800" height="800"></canvas>

    <div id="controls">
        <table>
            <!-- Sun Controls -->
            <tr>
                <td colspan="2"><strong>Sun</strong></td>
            </tr>
            <tr>
                <td>
                    <label>Mass</label>
                    <input type="range" id="sunMass" min="1" max="100" value="100" step="1">
                </td>
                <td>
                    <label>Radius</label>
                    <input type="range" id="sunRadius" min="10" max="50" value="30" step="1">
                </td>
            </tr>
            <!-- Planets Controls -->
            <!-- Mercury -->
            <tr>
                <td colspan="2"><strong>Mercury</strong></td>
            </tr>

Click here to find the full code.

Things to Keep in Mind

To run this code, you just need to follow 3 steps:

  1. Copy this code into your favourite code editor, like Notepad.
  2. Save the File as index.html.
  3. Open the file in your favourite web browser. 

Alternatively, you can directly play with the version I created. Do share in the comments what happened to jupiter’s speed when you maxed out on its radius?

Working of OpenAI’s o1 in this Experiment

While you marvel at this application, lets take a step back to understand what did OpenAI’s latest model did behind the scenes to bring my visualisation to life.

  • It took sometime to understand the different aspects that it needs to consider by groing through the prompt. 
  • It realised that it needs to use the concepts related to physics, mathematics & coding to generate the output. 
  • It combined the logic behind each step – merging physics & mathematics and translated several visual elements that i had suggested into a suitable code.

Now, that we are done with modeling our Solar system, let’s get some chemicals brewing.

Experiment 2: Acid-Base – Visual Chemistry 🧪

There are thousands of acids and bases out there. It’s not always easy to remember which one of these reacts with each other and the chemical they create? Imagine if we knew the results that we could get before mixing two chemicals! It would probably save us from many burns or unfortunate accidents in the lab and might as well help our institutes save money over broken beakers and other equipment.

So my ask to Open AI o1 was to create a simulation in which we could pick an acid, a base, and their quantities and it would tell us how our product would look like.

Prompt

Create a dynamic and interactive simulation involving three labeled beakers:

  1. Beaker Descriptions:
    • Beaker A: Contains a selected acid.
    • Beaker B: Contains a selected base.
    • Beaker C: Shows the output of the reaction.
  2. User Interface Elements:
    • Include dropdown menus for selecting 20 different acids and 20 different bases.
    • Provide separate dropdown menus to choose volumes (from 10 to 100 mL, in increments of 10) for both acid and base.
  3. Interactive Functionality:
    • When the user selects an acid, base, and their volumes, the simulation should:
      • Animate the addition of the acid and base into their respective beakers.
      • Display the acid and base labels on Beaker A and Beaker B once selections are made.
      • Show a green color in Beaker C if a reaction occurs and a blue color if no reaction occurs.
      • Provide detailed information below the simulation, indicating whether a reaction occurred, the product generated, its name, chemical formula, and relevant details.
  4. Visual Elements:
    • Beakers should have a realistic shape.
    • Ensure all text is in black for readability.

Output

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Acid-Base Reaction Simulation</title>

    <style>

        /* Styling for the simulation */

        body {

            background-color: #f0f0f0;

            background-image: url('https://example.com/chemistry_lab_background.jpg'); /* Replace with an actual lab image URL */

            background-size: cover;

            font-family: Arial, sans-serif;

        }

        #simulationContainer {

            display: flex;

            justify-content: space-around;

            align-items: flex-end;

            margin-top: 20px;

        }

        .beaker {

            width: 80px;

            height: 150px;

            border: 2px solid #333;

            border-bottom: 0;

            border-radius: 0 0 50% 50%;

            position: relative;

            overflow: hidden;

            background-color: #fff;

        }

        .beaker-label {

            text-align: center;

            font-weight: bold;

            color: #000;

            margin-top: 5px;

        }

        .liquid {

            width: 100%;

            height: 0;

            background-color: transparent;

            position: absolute;

            bottom: 0;

            transition: height 1s ease;

        }

Click here to find the full code.

Things to Keep in Mind

To run this code, follow the same steps as mentioned above.

Alternatively, you can directly use the version I created.

Now, that our chemistry is sorted, it is time we head to our next o1 experiment!

Experiment 3: Blending with Biology 🔬

The only thing separating us from machines is biology. Within biology lies the entire secret of mankind and at the core of biology lay proteins. Proteins are to humans what tokens are for LLMs. These proteins make up our body, brain and our entire nervous system helping us to comprehend and understand our surroundings. This is similar to how tokens build entire functionality of LLMs.

But there are practically limitless combinations of proteins possible! Hence its very difficult to remember the names and the use cases for each one of them. 

So the task I gave OpenAI’s o1 was to create a simulation that could help me generate unlimited combinations of these proteins and learn their use cases. 

Prompt

 Create an interactive Protein Builder Simulation with the following features:

  1. User Interaction:
    • Provide a dropdown menu containing the 20 standard amino acids, displaying their full names, three-letter codes, and one-letter symbols.
    • Include buttons to Add Amino Acid to the chain, Remove Last Amino Acid, and Reset Chain.
  2. Visual Representation:
    • Start with the most basic amino acid, Glycine, displayed by default.
    • Represent each amino acid as a uniquely colored helix and display their one-letter symbols below.
    • Visually connect amino acids with lines or bonds to represent peptide bonds as the chain grows horizontally.
  3. Information Display:
    • As amino acids are added, display their names and basic information (properties, uses) below the simulation.
    • If the amino acid sequence matches a known protein or peptide, display detailed information including its name, description, and popular uses.
    • For sequences not matching known proteins, display the amino acid sequence and general information about peptides, indicating it may represent a novel or synthetic peptide.

Output

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Protein Builder Simulation</title>

    <style>

        body {

            font-family: Arial, sans-serif;

            margin: 20px;

        }

        #builderContainer {

            width: 1000px;

            margin: 0 auto;

            text-align: center;

        }

        #aminoAcidSelect {

            width: 200px;

            padding: 5px;

            font-size: 16px;

        }

        #addButton, #removeButton {

            padding: 5px 10px;

            font-size: 16px;

            margin: 10px 5px;

        }

        #chainDisplay {

            margin: 20px 0;

            font-size: 18px;

            display: flex;

            flex-wrap: nowrap;

            overflow-x: auto;

            border: 1px solid #ccc;

            padding: 10px;

        }

        .aminoAcid {

            position: relative;

            width: 100px;

            height: 150px;

            margin: 5px;

            text-align: center;

        }

        .aminoAcid svg {

            width: 100%;

            height: 100%;

        }

        .aaLabel {

            margin-top: 5px;

            font-size: 14px;

        }

        #proteinInfo {

            margin-top: 20px;

            font-size: 16px;

        }

Click here to find the full code.

To run this code, follow the same steps as mentioned above.

Alternatively, you can directly use the version I created.

This is amazing isn’t it! Never before could I imagine that identifying proteins and creating new ones could be so fun and easy.

My Observation from the above o1 Experiments

This latest o1 model does impress with its capabilities in reasoning, logical thinking and coding. Yet, it has to take significant strides in adding features available in GPT4o like web browsing, uploading files or working with images. Till we see those improvements in o1 model, GPT 4o is still going to be the go to model for common tasks.

If you want to know more about the working of OpenAi’s o1 and o1-mini, read these articles:

Conclusion

I am impressed by the results I have seen in the above o1 experiments, with just a couple of hours in I could create 3 simulations for 3 different streams! o1 can potentially help millions of students who do not have the resources to actually experience the possibilities that science has to offer. Its going to be immensely beneficial for anyone who has an idea and wants the world to see it.

Although in the current version of the model we can’t add images or audio files  but when that happens – this multimodailty is going to further enhance the possibilities that can be attained with this model. A truly generative future awaits us.. 

Stay tuned to Analytics Vidhya blog to know more about the uses of o1!

Frequently Asked Questions

Q1. Whats o1?

A. OpenAI o1—a new series of AI models designed to spend more time thinking before they respond. These models can reason through complex tasks and solve harder problems than previous models in science, coding, and math

Q2. When was OpenAI’s o1 model launched?

A. OpenAI’s o1 model was launched on Sep 12, 2024.

Q3. Can o1 model process images?

A. Yes, the latest o1 models can process images although this functionality hasn’t been made live for public yet.

Q4. Can everyone use o1 models?

A. Currently only the paid members can use OpenAI’s o1 model.

Q5. How is OpenAI’s o1 series trained?

A. The o1 series is trained with large-scale reinforcement learning allowing it to reason using chain of thought

anu81685 16 Sep, 2024

Anu Madan has 5+ years of experience in content creation and management. Having worked as a content creator, reviewer, and manager, she has created several courses and blogs. Currently, she working on creating and strategizing the content curation and design around Generative AI and other upcoming technology.

Frequently Asked Questions

Lorem ipsum dolor sit amet, consectetur adipiscing elit,