Google: Gemma 3n 2B vs MiniMax M1
Compare Google: Gemma 3n 2B by Google AI against MiniMax M1 by MiniMax, context windows of 8K vs 1.0M, tested across 17 shared challenges. Updated February 2026.
Compare Google: Gemma 3n 2B by Google AI against MiniMax M1 by MiniMax, context windows of 8K vs 1.0M, tested across 17 shared challenges. Updated February 2026.
17 challenges
Tests an AI's randomness and creativity
Tests an AI's ability to create detailed SVG illustrations of gaming hardware
Tests an AI's ability to generate a complete, working landing page
Recreate an interactive, classic Mario level in a single HTML file.
Couldn't render this response
This model didn't return a displayable web page for this challenge.
<!DOCTYPE html>
<html>
<head>
<title>Super Mario Bros. Level</title>
>
<style>
body {
margin: 0;
overflow: hidden;
background: #87CEEB;
font-family: 'Press Start 2P', system-ui, -apple-system, sans-serif;
}
#gameCanvas {
display: block;
margin: 0 auto;
background: #87CEEB;
}
#score {
position: absolute;
top: 20px;
left: 20px;
color: white;
font-size: 20px;
text-shadow: 2px 2px 0 #000;
}
#instructions {
position: absolute;
bottom: 20px;
left: 20px;
color: white;
font-size: 14px;
text-shadow: 1px 1px 0 #000;
}
</style>
>
</head>
<body<body>
<div id="score">SCORE: 0</div>
<div id="instructions">←→ TO MOVE | ↑ TO JUMP | REACH THE FLAG!!</div>
<canvas id="gameCanvas" width="800" height="600">"></canvas>
>
<script>
const canvas = document.getElementById('gameCanvas');
const ctx = canvas.getContext('2d');
let score = 0;
const gravity = 0.5;
const friction = 0.8;
// Game objects
const mario = {
x: 50,
y: 450,
width: 40,
height: 60,
speed: 5,
velX: 0,
velY: 0,
grounded: false,
jumping: false,
color: '#FF0000'
};
const platforms = [
{ x: 0, y: 550, width: 800, height: 50, color: '#8B4513' }, // Ground
{ x: 200, y: 450, width: 100, height: 20, color: '#8B4513' }, // Platform 1
{ x: 400, y: 350, width: 100, height: 20, color: '#8B4513' }, // Platform 2
{ x: 600, y: 250, width: 100, height: 20, color: '#8B4513' } // Platform 3
];
const enemies = [
{ x: 250, y: 430, width: 30, height: 30, velX: 2, color: '#000000' },
{ x: 450, y: 330, width: 30, height: 30, velX: 2, color: '#000000' },
{ x: 650, y: 230, width: 30, height: 30, velX: 2, color: '#000000' }
];
const coins = [
{ x: 220, y: 430, width: 20, height: 20, collected: false, color: '#FFD700' },
{ x: 420, y: 330, width: 20, height: 20, collected: false, color: '#FFD700' },
{ x: 620, y: 230, width: 20, height: 20, collected: false, color: '#FFD700' }
];
const flag = { x: 700, y: 200, width: 30, height: 50, color: '#00FF00' };
// Input handling
const keys = {};
document.addEventListener('keydown', e => keys[e.key] = true);
document.addEventListener('keyup', e => keys[e.key] = false);
// Game loop
function gameLoop() {
// Clear canvas
ctx.fillStyle = '#87CEEB';
ctx.fillRect(0, 0, canvas.width, canvas.height);
// Draw clouds
drawClouds();
// Update Mario
updateMario();
// Update enemies
updateEnemies();
// Check collisions
checkCollisions();
// Draw game elements
drawGameElements();
requestAnimationFrame(gameLoop);
}
function updateMario() {
// Movement
if (keys['ArrowLeft']) mario.velX = -mario.speed;
if (keys['ArrowRight']) mario.velX = mario.speed;
if (keys['ArrowUp'] && mario.grounded) {
mario.velY = -12;
mario.grounded = false;
}
// Physics
mario.velX *= friction;
mario.velY += gravity;
mario.x += mario.velX;
mario.y += mario.velY;
// Boundaries
if (mario.x < 0) mario.x = 0;
if (mario.x + mario.width > canvas.width) mario.x = canvas.width - mario.width;
// Reset if fallen off
if (mario.y > canvas.height) {
mario.x = 50;
mario.y = 450;
mario.velY = 0;
}
// Platform collision
mario.grounded = false;
platforms.forEach(p => {
if (mario.x + mario.width > p.x &&
mario.x < p.x + p.width &&
mario.y + mario.height >= p.y &&
mario.y + mario.height <= p.y + 10 &&
mario.velY > 0) {
mario.grounded = true;
mario.y = p.y - mario.height;
mario.velY = 0;
}
});
}
function updateEnemies() {
enemies.forEach((e, index) => {
e.x += e.velX;
// Platform collision
platforms.forEach(p => {
if (e.x + e.width > p.x &&
e.x < p.x + p.width &&
e.y + e.height >= p.y &&
e.y + e.height <= p.y + 5) {
if (e.x <= p.x || e.x + e.width >= p.x + p.width) {
e.velX *= -1;
}
}
});
});
}
function checkCollisions() {
// Enemy collision
enemies.forEach((e, index) => {
if (mario.x + mario.width > e.x &&
mario.x < e.x + e.width &&
mario.y + mario.height > e.y &&
mario.y < e.y + e.height) {
if (mario.velY > 0 && mario.y + mario.height < e.y + e.height) {
enemies.splice(index, 1);
mario.velY = -10;
score += 20;
} else {
mario.x = 50;
mario.y = 450;
mario.velY = 0;
}
}
});
// Coin collection
coins.forEach(c => {
if (!c.collected &&
mario.x + mario.width > c.x &&
mario.x < c.x + c.width &&
mario.y + mario.height > c.y &&
mario.y < c.y + c.height) {
c.collected = true;
score += 10;
}
});
// Flag collision (win condition)
if (mario.x + mario.width > flag.x &&
mario.x < flag.x + flag.width &&
mario.y + mario.height > flag.y &&
mario.y < flag.y + flag.height) {
alert('YOU WIN!\nSCORE: ' + score + '');
resetGame();
}
// Update score display
document.getElementById('score').textContent = 'SCORE: ' + score + '';
}
function drawGameElements() {
// Draw platforms
platforms.forEach(p => {
ctx.fillStyle = p.color;
ctx.fillRect(p.x, p.y, p.width, p.height);
});
// Draw coins
coins.forEach(c => {
if (!c.collected) {
ctx.fillStyle = c.color;
ctx.beginPath();
ctx.arc(c.x + 10, c.y + 10, 10, 0, Math.PI * 2);
ctx.fill();
}
});
// Draw enemies
enemies.forEach(e => {
ctx.fillStyle = e.color;
ctx.fillRect(e.x, e.y, e.width, e.height);
// Draw eyes
ctx.fillStyle = 'white';
ctx.fillRect(e.x + 7, e.y + 8, 5, 5);
ctx.fillRect(e.x + 18, e.y + 8, 5, 5);
});
// Draw flag
ctx.fillStyle = flag.color;
ctx.fillRect(flag.x, flag.y, flag.width, flag.height);
// Flag pole
ctx.strokeStyle = '#654321';
ctx.lineWidth = 5;
ctx.beginPath();
ctx.moveTo(flag.x, 250);
ctx.lineTo(flag.x, flag.y);
ctx.stroke();
// Draw Mario
ctx.fillStyle = mario.color;
ctx.fillRect(mario.x, mario.y, mario.width, mario.height);
// Mario eyes
ctx.fillStyle = 'white';
ctx.fillRect(mario.x + 10, mario.y + 15, 8, 8);
ctx.fillRect(mario.x + 22, mario.y + 15, 8, 8);
}
function drawClouds() {
ctx.fillStyle = 'rgba(255, 255, 255, 0.8)';
// Cloud 1
ctx.beginPath();
ctx.arc(100, 100, 20, 0, Math.PI * 2);
ctx.arc(130, 90, 20, 0, Math.PI * 2);
ctx.arc(160, 100, 20, 0, Math.PI * 2);
ctx.fill();
// Cloud 2
ctx.beginPath();
ctx.arc(600, 150, 20, 0, Math.PI * 2);
ctx.arc(630, 140, 20, 0, Math.PI * 2);
ctx.arc(660, 150, 20, 0, Math.PI * 2);
ctx.fill();
}
function resetGame() {
mario.x = 50;
mario.y = 450;
mario.velY = 0;
coins.forEach(c => c.collected = false);
score = 0;
enemies.push(
{ x: 250, y: 430, width: 30, height: 30, velX: 2, color: '#000000' },
{ x: 450, y: 330, width: 30, height: 30, velX: 2, color: '#000000' },
{ x: 650, y: 230, width: 30, height: 30, velX: 2, color: '#000000' }
);
}
// Start game
gameLoop();
</script>
>
</body>
</htmlhtml>Generate SVG art of a randomly chosen animal in a setting of its choosing.
Generate a unique and simple recipe with common ingredients.
Create a starter plan for improving long-term health.
Recreate a classic, retro, macOS Desktop UI — make it interactive and nostalgic, make it as interactive as you can, you can be creative.. Feel free to showcase your skills. The entire application must be a single-page self-contained HTML file.
Develop a cutting-edge 3-month longevity plan for a biohacker.
Disclaimer: This plan is a comprehensive guideline and should be adapted to individual needs, health conditions, and ethical considerations. Consult with a qualified healthcare professional (doctor, registered dietitian) before starting any new supplement regimen, exercise program, or significant dietary change. This is not medical advice and results may vary. Continuous monitoring and adjustments are crucial.
Biohacker Profile: Assumes a baseline level of health, fitness, and biohacking knowledge. Prior experience with intermittent fasting, exercise, and basic supplementation is assumed.
Goal: Optimize longevity, physical performance, and cognitive function over 3 months.
Core Principles:
I. Phase 1: Foundation & Optimization (Month 1)
A. Dietary Protocol: Ketogenic & Intermittent Fasting (IF)
B. Wearable Tracking (Continuous Monitoring)
C. Exercise Program (Foundation)
D. Stress Resilience (Initial Strategies)
II. Phase 2: Intensification & Adaptation (Month 2)
A. Dietary Protocol: Advanced Ketogenic & IF
B. Wearable Tracking (Advanced Analysis)
C. Exercise Program (Intensification)
D. Stress Resilience (Advanced Techniques)
III. Phase 3: Refinement & Maintenance (Month 3)
A. Dietary Protocol: Fine-Tuning Ketogenic
Integrating cutting-edge strategies for physical, cognitive, and cellular health.
Goal: Establish baseline metrics, initiate core protocols, and build habits.
Dosages and cycling to maximize efficacy and minimize tolerance.
Cycling Notes:
Ketogenic cycling with fasting for metabolic flexibility and autophagy.
Strength, HIIT, and recovery for mitochondrial health and muscle retention.
Data-driven adjustments for personalized optimization.
HRV training, breathwork, and cold exposure.
Goal: Refine protocols using data, enhance cognitive performance, and deepen autophagy.
Goal: Push performance, refine biomarkers, and integrate cutting-edge biohacks.
This plan balances aggressive longevity strategies with adaptability, leveraging wearables and biomarkers for precision. Always consult a healthcare provider before starting new supplements or protocols.
Design an innovative, multi-component dish worthy of a 3-star Michelin restaurant.
Conceptual Narrative:
"TheEphemeral Bloom" is a dish representing the fleeting beauty of a rare and delicate flower, blossoming amidst a tempestuous sea. It aims to evoke a sense of preciousness, transient elegance, and the complex interplay of sweet, savory, and tart flavors. The dish explores the surprising harmony between the briny sweetness of scallops and the deep umami of black garlic, culminating in a vibrant and visually stunning experience. It’s a journey through textures and tastes, a moment of ephemeral perfection.
Dish Components:
Detailed Recipe Instructions:
I. Scallop & Black Garlic Blossom:
Ingredients:
Instructions:
II. Saffron & Yuzu Emulsion:
Ingredients:
Instructions:
III. Sea Buckthorn Pearls:
Ingredients:
Instructions:
IV. Matcha Dust:
Ingredients:
Instructions:
V. Cucumber & Mint Air:
Ingredients:
Instructions:
Plating Presentation:
Sourcing Notes:
Wine Pairing:
A crisp, dry Gewürztraminer or a light-bodied Sauvignon Blanc would complement the dish's flavors beautifully. The aromatic notes of the wine will echo the floral elements of the dish, while the acidity will cut through the richness of the scallops.
This dish is a testament to the power of unexpected ingredient pairings and meticulous culinary techniques. It is designed to be a memorable and exquisite dining experience, showcasing the restaurant's commitment to innovation and artistry.
Dish Name: Oceanic Harmony: Scallop, Yuzu, and Black Garlic
Conceptual Narrative:
This dish embodies the interplay between land and sea, inspired by the Japanese philosophy of shinrin-yoku (forest bathing). The Hokkaido scallop represents the ocean’s bounty, while black garlic (a fermented, earthy ingredient) and yuzu (a citrus fruit) bridge terrestrial and marine elements. A celery root puree adds creaminess, black truffle introduces luxury, and seaweed salad evokes coastal flora. Edible flowers mirror the colors of a forest meadow, creating a dish that is both visually stunning and narratively cohesive.
(Serves 4)
Ingredients:
Technique:
Ingredients:
Technique:
Ingredients:
Technique:
Ingredients:
Technique:
Ingredients:
Technique:
Ingredients:
Assembly:
This dish balances technical mastery, unexpected flavor pairings (scallop + black garlic + yuzu), and artistic presentation, embodying the creativity and precision of a Michelin 3-star experience.
Create an autonomous drone simulator with custom environment using ThreeJS
Couldn't render this response
This model didn't return a displayable web page for this challenge.
```html
<!DOCTYPE html>
<html>
<head>
<title>Autonomous Drone Simulator</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css">
<style>
body {
font-family: sans-serif;
margin: 0;
padding: 0;
background-color: #f0f0f0;
}
.container {
width: 90%;
margin: 20px auto;
text-align: center;
}
#environment {
width: 800px;
height: 600px;
margin: 0 auto;
border: 1px solid #ccc;
}
#controls {
margin-top: 20px;
padding: 10px;
background-color: #fff;
border: 1px solid #ccc;
border-radius: 5px;
}
#status {
margin-top: 10px;
font-weight: bold;
}
</style>
</head>
<body>
<div class="container">
<h1>Autonomous Drone Simulator</h1>
<div id="environment"></div>
<div id="controls">
<label for="speed">Speed:</label>
<input type="number" id="speed" value="5" min="1" max="100">
<button id="start">Start</button>
<button id="stop">Stop</button>
<button id="reset">Reset</button>
</div>
<div id="status">
<!-- Display drone status here (e.g., "Flying", "Error") -->
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/three@0.161.0/build/three.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/three@0.161.0/examples/js/loaders/GLTFLoader.js"></script>
<script src="https://cdn.jsdelivr.net/npm/three@0.161.0/examples/js/controls/FirstPersonControls.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/gsap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<script>
const environmentDiv = document.getElementById('environment');
const speedInput = document.getElementById('speed');
const startButton = document.getElementById('start');
const stopButton = document.getElementById('stop');
const resetButton = document.getElementById('reset');
const statusDiv = document.getElementById('status');
let scene;
let drone;
let camera;
let controls;
let speed = 5;
let isRunning = false;
let lastTime = 0;
// --- Environment (Customizable) ---
const environmentData = {
width: 800,
height: 600,
groundColor: '#333',
skyColor: '#87CEEB',
objects: [
{ x: 100, y: 50, z: 0, type: 'cube', color: '#FF0000', size: 20 },
{ x: 300, y: 150, z: 0, type: 'sphere', color: '#00FF00', radius: 30 },
{ x: 500, y: 300, z: 0, type: 'cylinder', color: '#0000FF', height: 50, radius: 10 }
]
};
// --- Drone Class ---
class Drone {
constructor(x, y, z) {
this.x = x;
this.y = y;
this.z = z;
this.rotation = { x: 0, y: 0, z: 0 };
}
update(deltaTime) {
// Simple movement based on speed
this.x += Math.cos(this.rotation.x * 0.1) * speed * deltaTime;
this.y += Math.sin(this.rotation.y * 0.1) * speed * deltaTime;
this.z += speed * deltaTime;
// Keep drone within environment
this.x = Math.max(0, Math.min(this.x, environmentData.width));
this.y = Math.max(0, Math.min(this.y, environmentData.height));
this.z = Math.max(0, Math.min(this.z, environmentData.height * 2)); // Adjust z-axis limit
}
draw() {
// You can add more advanced drawing here (e.g., using a 3D model)
// For now, just a simple cube
const material = new THREE.MeshStandardMaterial({ color: 'purple' });
const geometry = new THREE.BoxGeometry(20, 20, 20);
const mesh = new THREE.Mesh(geometry, material);
mesh.position.set(this.x, this.y, this.z);
scene.add(mesh);
}
}
// --- Initialize Three.js Scene ---
function init() {
scene = new THREE.Scene();
scene.background = new THREE.Color(environmentData.skyColor);
const ground = new THREE.PlaneGeometry(environmentData.width * 1.2, environmentData.height * 1.2);
const groundMaterial = new THREE.MeshStandardMaterial({ color: environmentData.groundColor, roughness: 0.5 });
const groundMesh = new THREE.Mesh(ground, groundMaterial);
scene.add(groundMesh);
drone = new Drone(environmentData.width / 2, environmentData.height / 2, environmentData.height * 1.5);
drone.draw();
camera = new THREE.PerspectiveCamera(75, environmentData.width / environmentData.height, 0.1, 1000);
camera.position.set(0, environmentData.height / 2 + 50, 5);
scene.add(camera);
controls = new FirstPersonControls(camera, scene, {
speed: speed,
acceleration: 1,
maxSpeed: 100
});
// Add some objects to the environment
for (const obj of environmentData.objects) {
const geometry = new THREE.Shape( {
segments: obj.size,
bevelDepth: 0
});
const material = new THREE.MeshStandardMaterial({ color: obj.color });
const mesh = new THREE.Mesh(geometry, material);
scene.add(mesh);
}
//--- Add a keypress event to the drone to control the camera ---
document.addEventListener('keydown', (event) => {
if (event.key === 'w') {
camera.position.z += 1;
} else if (event.key === 's') {
camera.position.z -= 1;
}
});
}
// --- Update Function ---
function update(time) {
if (!isRunning) return;
// Update drone position
drone.update(time / 1000);
// Update camera position based on drone movement
camera.position.x = drone.x;
camera.position.y = drone.y;
camera.position.z = drone.z;
// Apply camera movement to the environment
for (const obj of environmentData.objects) {
const geometry = new THREE.Shape( {
segments: obj.size,
bevelDepth: 0
});
const material = new THREE.MeshStandardMaterial({ color: obj.color });
const mesh = new THREE.Mesh(geometry, material);
mesh.position.set(drone.x, drone.y, drone.z);
scene.add(mesh);
}
// Render
renderer.render(scene, camera);
}
// --- Event Handlers ---
startButton.addEventListener('click', () => {
if (!isRunning) {
isRunning = true;
startTime = Date.now();
console.log('Drone started');
}
});
stopButton.addEventListener('click', () => {Find exploitable clauses in a software consulting contract and suggest modifications with legal reasoning.