Exploring Google’s Gemini 2.5 Pro: Features, Demos, and Development Insights

Introduction

AI models keep surprising me with how quickly they're evolving, and Google's Gemini 2.5 Pro is a great example of just how far we've come. Google has a habit of making bold claims, especially when it comes to their AI products. With Gemini 2.5 Pro, they claim improved logical reasoning and multimodal capabilities; so, I decided to put Gemini through its paces with some hands-on tests. Could it actually create a playable JavaScript platformer game from scratch? Could it interpret a partial differential equation directly from an image and provide a symbolic solution? In this post, I'll share how Gemini performed in these two tasks. I'll share my insights on its strengths and limitations; and present some of its benchmark results.


Core Features & Technical Deep Dive

Before diving into Gemini 2.5 Pro, first we should know what this new model brings to the table compared to its predecessor. Gemini 2.5 Pro brings major improvements in how well it understands, combines different kinds of information, and keeps track of the conversation in context.

Gemini 2.5 Pro features a massive 1 million input token context window (with plans to expand to 2 million). This allows it to utilize and reason about enormous data volumes, which makes it useful for analyzing entire codebases, long documents, or hours of video. One of its standout claims is its improved step-by-step logical reasoning, handling multi-step instructions and technical content with more precision. Benchmark results show strong performance, reportedly surpassing other models like GPT-4 on a lot of benchmarks like MATH(Mathematical), GSM8K(Math Word Problems), HumanEval (Code generation), and DROP (Reading comprehension), and performing particularly well on math challenges like AIME!

Estimated IQ scores of various AI models, as visualized by MaximumTruth.org


Not only is it accurate, the model is built to natively handle text, image, audio, video, and code inputs. This means it can solve problems involving mixed data types, such as analyzing a chart and answering questions about it, or understanding a code snippet alongside an image of an error message. However, currently its output is text only(it can also output images using its built-in image generator, Imagen 3).

These capabilities are already baked into everyday Google tools. You’ve probably seen them in action:

  • Gmail can give summaries of emails

  • Docs offering AI-powered writing assistance

  • Slides can create custom, creative slides

  • Google Meet can take notes during a session

It’s not just a research model anymore. Gemini is quietly reshaping how Google’s core apps work behind the scenes.

You can learn more here: Google AI in Workspaces

Applications & Use Cases

Already I can imagine the many useful applications for this tool, deep data analysis, insight extraction from dense documents (legal, medical), advanced coding assistance, just to name a few. So I rolled up my sleeves and ran a few hands-on tests. I asked it to build a 2D platformer game and solve a PDE from an image. Here's what happened.


Hands-On Experiments with Gemini 2.5 Pro

Experiment 1: Building a Game with Gemini

Can Gemini 2.5 Pro build a simple 2D game from scratch?

I asked to generate a JavaScript-based platformer game using HTML5 canvas, Gemini 2.5 Pro produced functional code including character animations, basic physics (jumping, collisions), collectibles, and score tracking. 

The result was a playable, simple, but clean game. But let's up the stakes!

Can Gemini 2.5 Pro build a simple 3D game from scratch?

My attempt to create a basic Minecraft-like 3D world in Python with Unity resulted in code that failed to compile due to incorrect API calls and logical inconsistencies. A subsequent attempt using HTML5 (presumably with libraries like Three.js or Babylon.js) compiled, but controls were "janky" and inconsistent.


All the code can be found here: https://github.com/nathangthomas1/Gemini2.5_blog/tree/main

With these tests, Gemini 2.5 Pro shows proficiency in generating logic for simpler 2D games but struggles with the complexities and specific API requirements of production-ready 3D game code. It serves better as a coding assistant than a full replacement developer for complex projects.

Experiment 2: Solving a Difficult Math problem with Multimodal Input

Next, I wanna know if Gemini can help me with my math homework 

Can Gemini interpret a math problem (image) and provide a symbolic solution (text)?

The above problem is a partial differential equation. A partial differential equation (PDE) is a math equation that shows how something changes in more than one direction, like over space and time. The specific solution for this problem requires a symbolic solution, or an exact solution to a problem expressed in terms of symbols, like variables and functions, rather than specific numbers. So basically a really hard problem.

First, I uploaded the picture above of a partial differential equation with the added text, "Solve this for the boundary conditions provided. Give general and particular solutions if possible." Gemini successfully interpreted the image, identified the 2D heat equation, and applied appropriate methods (separation of variables, Fourier series) to derive a solution, making reasonable assumptions for boundary conditions. The combination of image and text input proves effective for complex multimodal technical tasks.


This is the response given:

Okay, let's solve the Dirichlet problem for the Laplace equation uxx+uyy=0 on the unit square 0≤x≤1,0≤y≤1using separation of variables.

The boundary conditions are:

  1. u(x,0)=0 for 0<x<1

  2. u(x,1)=0 for 0<x<1

  3. u(1,y)=0 for 0<y<1

  4. u(0,y)=f(y) for 0<y<1

Step 1: Separation of Variables

Assume the solution has the form u(x,y)=X(x)Y(y). Substituting this into the Laplace equation gives: X′′(x)Y(y)+X(x)Y′′(y)=0

Divide by X(x)Y(y) (assuming X(x)Y(y)=0): X(x)X′′(x)+Y(y)Y′′(y)=0 X(x)X′′(x)=−Y(y)Y′′(y)

Since the left side depends only on x and the right side only on y, both sides must equal a constant, say λ. X(x)X′′(x)=λ⟹X′′−λX=0 −Y(y)Y′′(y)=λ⟹Y′′+λY=0

Step 2: Apply Homogeneous Boundary Conditions in y

The boundary conditions u(x,0)=0 and u(x,1)=0 are homogeneous. They translate to conditions on Y(y):u(x,0)=X(x)Y(0)=0⟹Y(0)=0 u(x,1)=X(x)Y(1)=0⟹Y(1)=0

We now solve the boundary value problem for Y(y): Y′′+λY=0, with Y(0)=0 and Y(1)=0.

  • Case 1: λ=0: Y′′=0⟹Y(y)=Ay+B. Y(0)=B=0, Y(1)=A=0. Gives the trivial solution Y(y)=0.

  • Case 2: λ<0: Let λ=−μ2 (μ>0). Y′′−μ2Y=0. General solution Y(y)=Acosh(μy)+Bsinh(μy).Y(0)=A=0. Y(1)=Bsinh(μ)=0. Since μ>0, sinh(μ)=0, so B=0. Gives the trivial solution Y(y)=0.

  • Case 3: λ>0: Let λ=μ2 (μ>0). Y′′+μ2Y=0. General solution Y(y)=Acos(μy)+Bsin(μy).Y(0)=A=0. Y(1)=Bsin(μ)=0. For non-trivial solutions (B=0), we need sin(μ)=0. This occurs when μ=nπ for n=1,2,3,.... The eigenvalues are λn=(nπ)2. The corresponding eigenfunctions are Yn(y)=sin(nπy) (we can absorb the constant B into the X(x) part).

Step 3: Solve for X(x)

For each eigenvalue λn=(nπ)2, the equation for X(x) is: Xn′′−(nπ)2Xn=0 The general solution is Xn(x)=Anenπx+Bne−nπx.

Alternatively, we can use hyperbolic functions: Xn(x)=Cncosh(nπx)+Dnsinh(nπx).

Now apply the homogeneous boundary condition u(1,y)=0: u(1,y)=X(1)Y(y)=0⟹X(1)=0.

Applying Xn(1)=0 to the hyperbolic form: Xn(1)=Cncosh(nπ)+Dnsinh(nπ)=0⟹Cn=−Dncosh(nπ)sinh(nπ). Substituting Cn back: Xn(x)=−Dncosh(nπ)sinh(nπ)cosh(nπx)+Dnsinh(nπx) Xn(x)=cosh(nπ)Dn[−sinh(nπ)cosh(nπx)+cosh(nπ)sinh(nπx)] Using the identity sinh(A−B)=sinhAcoshB−coshAsinhB: Xn(x)=cosh(nπ)Dnsinh(nπx−nπ)=cosh(nπ)Dnsinh(nπ(x−1))

Let En=cosh(nπ)Dn be a new constant. Xn(x)=Ensinh(nπ(x−1)).

Step 4: Form the General Solution

The solutions are of the form un(x,y)=Xn(x)Yn(y)=Ensinh(nπ(x−1))sin(nπy). By the principle of superposition, the general solution is an infinite sum of these solutions: u(x,y)=∑n=1∞Ensinh(nπ(x−1))sin(nπy)

Step 5: Apply the Non-Homogeneous Boundary Condition

Use the remaining condition u(0,y)=f(y): u(0,y)=∑n=1∞Ensinh(nπ(0−1))sin(nπy)=f(y) f(y)=∑n=1∞Ensinh(−nπ)sin(nπy) Since sinh(−z)=−sinh(z): f(y)=∑n=1∞[−Ensinh(nπ)]sin(nπy)

This is a Fourier sine series for f(y) on the interval [0,1]. The coefficients are given by: Coefficient of sin(nπy)=−Ensinh(nπ) Fourier Sine Coefficient Formula: Cn=L2∫0Lf(y)sin(Lnπy)dy. Here L=1. −Ensinh(nπ)=2∫01f(y)sin(nπy)dy

Solving for En: En=−sinh(nπ)2∫01f(y)sin(nπy)dy

Step 6: Final Solution

Substitute the expression for En back into the general solution: u(x,y)=∑n=1∞[−sinh(nπ)2∫01f(y′)sin(nπy′)dy′]sinh(nπ(x−1))sin(nπy)

We can rearrange this slightly: u(x,y)=∑n=1∞[2∫01f(y′)sin(nπy′)dy′][−sinh(nπ)sinh(nπ(x−1))]sin(nπy)

Let Cn=2∫01f(y)sin(nπy)dy. Then the solution is: u(x,y)=∑n=1∞Cn[−sinh(nπ)sinh(nπ(x−1))]sin(nπy)

This is the general solution to the given Dirichlet problem. The coefficients Cn depend on the specific function f(y)provided for the boundary condition at x=0.

An important thing to note when using Gemini, alot of times the Latex expressions don't correctly show the cleaned up the output, making a little difficult to read



Now I could go on and on with all different tests, however there is a limit on computation. Google has implemented a limit on how much computation a user is allowed to do in one day for this model. 

So instead, check out this video which goes into more kinds of programs you can create by Gemini 2.5 Pro.

How to Try Gemini 2.5 Pro for Yourself

Now, if you're interested in experimenting with Gemini 2.5 Pro, here’s how to get started:

  1. Go to the Gemini web interface: https://gemini.google.com

  2. Sign in with your Google account.

  3. Access requires Gemini Advanced subscription for the Pro features. Select Gemini 2.5 Pro from the model dropdown (if available to you).

  1. You can then upload files, images, or code snippets and interact via text prompts.

Tip: Gemini capabilities are also integrated into Google Workspace (Docs, Sheets, Gmail) and Android devices, often accessible via Workspace or device settings.


Conclusion

It’s important to remember that Gemini 2.5 Pro is still considered experimental. While it’s incredibly capable in many areas, the performance isn’t always consistent. Also, if you're working on something where speed and cost matter more than deep reasoning, a lighter model like Gemini 2.5 Flash might make more sense.

However, after experimenting with Gemini 2.5 Pro on a mix of projects, I’ve got to admit, it’s probably one of the most creative tools I’ve had at my disposal. Creating a functional 2D game felt almost effortless with it guiding the process. Of course, it’s not without limits. Once you move into more advanced territory, like working out the logic for 3D games, it starts to show some cracks. Despite that, it easily handled symbolic math problems straight from images, something I honestly didn’t expect it to get right. Though it definitely has its shortcomings, for most creative and technical tasks it holds its own surprisingly well.

Next, I’m curious how it will handle larger scale projects with a little more direction from the user: Can it create 3D games with a more detailed prompt? Can it debug code? All of these are next on my to do list.

Back to blog

Leave a comment

Please note, comments need to be approved before they are published.