Optimus Alpha on openrouter, who is it from?

A fresh large language model, Optimus Alpha, just landed on OpenRouter, and it’s ready for action! This cloaked model is designed for real-world use, with a focus on programming tasks, and it’s free to use(for now) during its pre-release phase.
🔹 What We Know:
Huge Context Window: It boasts a 1M token context length, ideal for handling large codebases or complex projects.
Coding Focus: Optimized for programming, it’s built to tackle coding challenges, though it can handle general tasks too.
Accessible Now: You can try it via OpenRouter’s API or chatroom—no cost, no barriers.
Data Logging: All prompts and outputs are logged by the model’s creators (not OpenRouter) to improve the model.
The creators remain undisclosed, so Optimus Alpha is a bit of a mystery, but its power is open for testing! If you’re a developer or AI enthusiast, jump in and see what it can do. Share your experience to help shape this model’s future! 🚀
#AI #LLM #OptimusAlpha #OpenRouter #Coding
Coding Test
We did a coding test to see how it would perform compared to other LLMS from open router.
The prompt:
Write a p5.js script that simulates 100 colorful balls bouncing inside a sphere. Each ball should leave behind a fading trail showing its recent path. The container sphere should rotate slowly. Make sure to implement proper collision detection so the balls stay within the sphere.
Here is the code:
let balls = [];
let numBalls = 100;
let sphereRadius = 200;
let rotX = 0;
let rotY = 0;
function setup() {
createCanvas(800, 600, WEBGL);
colorMode(HSB, 360, 100, 100, 1);
// Initialize balls with random positions, velocities, colors, and trail storage
for (let i = 0; i < numBalls; i++) {
// Ensure initial position is inside sphere
let pos = randomPositionInSphere(sphereRadius * 0.8);
let vel = p5.Vector.random3D().mult(random(2, 5));
let col = color(random(360), 80, 100);
balls.push(new Ball(pos, vel, col));
}
}
function draw() {
background(0, 0, 10);
// Lighting for better 3D visualization
ambientLight(50);
pointLight(255, 255, 255, 0, 0, 200);
// Rotate the entire scene for sphere rotation effect
rotX += 0.01;
rotY += 0.005;
rotateX(rotX);
rotateY(rotY);
// Draw the container sphere as a wireframe
noFill();
stroke(180, 30, 80, 0.5);
sphere(sphereRadius);
// Update and display each ball
for (let ball of balls) {
ball.update();
ball.display();
}
}
// Generate random position inside sphere using spherical coordinates
function randomPositionInSphere(radius) {
let r = random(0, radius);
let theta = random(0, TWO_PI);
let phi = random(0, PI);
let x = r * sin(phi) * cos(theta);
let y = r * sin(phi) * sin(theta);
let z = r * cos(phi);
return createVector(x, y, z);
}
// Ball class to handle position, velocity, collision, and trail
class Ball {
constructor(pos, vel, col) {
this.pos = pos;
this.vel = vel;
this.col = col;
this.radius = 5;
// Store last 20 positions for trail
this.trail = [];
this.maxTrail = 20;
}
update() {
// Update position
this.pos.add(this.vel);
// Check for collision with sphere boundary
let dist = this.pos.mag();
if (dist > sphereRadius – this.radius) {
// Calculate normal vector (points from center to ball position)
let normal = this.pos.copy().normalize();
// Reflect velocity vector across normal (v’ = v – 2(v·n)n)
let dot = this.vel.dot(normal);
let reflection = p5.Vector.mult(normal, 2 * dot);
this.vel.sub(reflection);
// Dampen velocity slightly on collision
this.vel.mult(0.95);
// Move ball back inside sphere
let correctionDist = dist – (sphereRadius – this.radius);
let correction = p5.Vector.mult(normal, correctionDist);
this.pos.sub(correction);
}
// Update trail
this.trail.push(createVector(this.pos.x, this.pos.y, this.pos.z));
if (this.trail.length > this.maxTrail) {
this.trail.shift();
}
}
display() {
// Draw the trail
noFill();
beginShape();
for (let i = 0; i < this.trail.length; i++) {
let alpha = map(i, 0, this.trail.length – 1, 0, 0.8);
stroke(this.col.hue(), this.col.saturation(), this.col.brightness(), alpha);
let p = this.trail[i];
vertex(p.x, p.y, p.z);
}
endShape();
// Draw the ball
push();
translate(this.pos.x, this.pos.y, this.pos.z);
noStroke();
fill(this.col);
sphere(this.radius);
pop();
}
}