---
title: "The Bike Looked Right Until It Started Rotating"
slug: building-an-orbea-oiz-in-blender-with-an-ai-agent
summary: "I asked an AI agent to build a parametric Orbea Oiz in Blender from reference photos. The useful work was in the corrections: tube profiles, chain links, curved lettering—and a paint bug that only became obvious in the video."
tags: AI agents, Blender, 3D modeling, parametric modeling, Orbea Oiz
ai_model: gpt-6-astra
published_at: 2026-09-06T17:12:11.451+00:00
canonical_url: https://jarkkolietolahti.com/articles/building-an-orbea-oiz-in-blender-with-an-ai-agent
markdown_url: https://cemecdwfdvdbvpvowuln.supabase.co/functions/v1/content-md?slug=building-an-orbea-oiz-in-blender-with-an-ai-agent
---

I asked an AI agent to build a complete parametric model of the Orbea Oiz 2027 in Blender. I supplied reference pictures, asked it to inspect Orbea’s own images and videos, and then reviewed the result one detail at a time.

The model became recognisable fairly quickly. Making the details consistent took longer. The most revealing mistake appeared after we had made a video: the bike rotated, but the dark paint on the downtube seemed to move independently of it.

That was a useful test of what we had actually built.

## A model I could change

The work used GPT-6-Astra through Codex, with a Python generator for Blender. The output was a complete visual bike: frame, suspension, wheels, drivetrain, cockpit, saddle, cables, and markings.

The generator exposed dimensions such as reach, stack, wheelbase, head angle, seat-tube length, and tire width. A panel in Blender let me change parameters and rebuild the bike. We also added controls for the short lower section of the downtube and the height of its bend.

This was a photo-based reconstruction. It was not factory CAD, and the suspension was not a mechanically validated simulation. The parameters made the geometry editable; they did not turn estimates from pictures into manufacturing dimensions.

The reference material came from my screenshots and the [Orbea Oiz page](https://www.orbea.com/en-fi/m/oiz). Different views helped expose shapes that a single side photograph concealed.

## The corrections were specific

My feedback mostly consisted of screenshots and short observations.

The first chain looked like two chains: one solid line and another made of beads. The agent replaced that construction with a single path carrying alternating link plates, rollers, and rivets.

The FOX lettering needed to align with the fork leg. The ORBEA lettering needed to appear on both sides of the downtube. The tire lettering needed to follow the wheel circumference. These were small details, but each one made the difference between a collection of approximate parts and a coherent bike.

The frame required more interpretation. Near the pedals, the reference downtube has a short, relatively low section before bending into the long climb toward the headset. A simple diagonal tube missed that shape. We adjusted the bend, refined the head junction, and extended the structural wing above the rear shock.

A clearer reference photograph then showed that our downtube was too thick. The next pass reduced its side-profile thickness by roughly 15–18%, slimmed the forward top tube and seat tube, and fitted the lettering and bottle mounts to the revised surface.

We also added a continuous front brake hose, capped tire valves, and a cable from the Squidlock control to the blue adjuster on the rider-right fork leg. The cable routing was visual geometry, not a functioning control system.

## Rotation exposed a different kind of error

For the video, I wanted the reference photo fixed above the model. The model would start upside down, like a reflection in water. After ten seconds it would turn upright, tumble, rotate through several angles, and return to its starting pose.

The resulting clip made the three-dimensional construction obvious. It also exposed the paint problem.

In Blender I had mostly been orbiting the view around a stationary bike. In the animation, the bike itself rotated. The frame shader used world-space position to decide where to place the dark downtube panel and orange gradients. As the geometry moved through those coordinates, the paint pattern shifted across it.

The agent had made the material look right in the stationary scene without making its coordinate system follow the bike.

The correction was to give the paint a coordinate reference attached to the bike and use that reference for all three affected materials. We then checked the mapping in several rotated poses and rendered the full sequence again. Lighting still changes as the frame turns; the paint boundaries now stay on the frame.

## What we checked

The frame checks covered M and XL rebuilds, a closed and connected front-frame mesh, and lettering that projected onto the intended surfaces. Separate checks covered the chain construction, cable endpoints, valve caps, and curved tire markings.

For the paint correction, a test followed sample points on painted objects through eight animation poses. Their coordinates relative to the paint reference remained effectively unchanged. We also checked rendered poses, because a numerical check alone would not tell me whether the bike looked convincing.

The corrected export is a silent, 30-second portrait video at 1080 × 1920 and 24 frames per second. Its opening and closing images match for repeated playback.

The result is still a visual approximation, with simplified components and estimated surfaces. But it is an editable model that can be inspected from new angles. The rotation was useful because it tested a relationship the still images had never tested: whether the appearance actually belonged to the object.

