JZ / OBJECT STUDY 01

OpenAI's Codex Micro.
Buyer's remorse, rendered.

Assembling acrylic, switches, and unreasonable pricing.

JIZHANG.IO / OBJECT STUDY 01

OpenAI's Codex Micro: Buyer's Remorse, Rendered

PERSONAL BUILD

DRAG TO ORBIT · MOVE BOTH CONTROLS · PRESS THE KEYS · TRY RECORD

THE STORY 制作记录

A PHOTOGRAPH-DRIVEN RECONSTRUCTION 一个从照片开始的程序化重建

OpenAI's Codex Micro:
Buyer's Remorse, Rendered

A few hundred dollars bought me a very good-looking box of switches. Curiosity made me buy it. Buyer's remorse made me rebuild it. 几百美元买来了一盒很好看的开关. 好奇心让我下单, 买家懊悔让我把它重新做了一遍.

01THREE.JSRuntime geometry运行时几何
0217 REFERENCESPhotos and details照片与细节图
03NO SCANBuilt from primitives由基础几何构成
01

The object was already halfway to being a render. 这个东西本来就像一张渲染图.

The appeal was not utility alone. It was the thick translucent shell, the frosted keycaps, the small circuit traces, the white stepped rotary control, the black leather-like joystick, and the absurdly considered underside. It looked like hardware designed by someone who cared about the parts nobody sees.

吸引我的不只是功能. 它有厚实的半透明外壳, 雾面的透明键帽, 很细的电路纹路, 一边高一边低的白色旋钮, 带皮质感的黑色摇杆, 甚至连底部都做得过分认真. 它像是一个连看不见的部分都有人在乎的硬件.

02

Every visible part had to become an explicit decision. 照片里的每个零件都要变成一个明确决定.

There is no downloaded mesh hiding behind the page. The shell, sloped base, underside disc, acrylic plate, switches, keycaps, screws, controls, printed legends, circuit traces, and lights are procedural Three.js geometry. The model is assembled by code each time the page loads.

这个页面背后没有下载来的模型. 外壳, 斜底座, 底部圆盘, 亚克力面板, 轴体, 键帽, 螺丝, 控制件, 印刷文字, 电路纹路和灯光, 都是程序化的 Three.js 几何. 每次页面加载时, 代码都会重新把它组装起来.

Not a configuration file. A small factory. 它不是配置文件. 它是一座小工厂.

  1. 01Shell and wedge外壳与斜底座Rounded profiles, bevels, thickness, slope圆角轮廓, 倒角, 厚度与倾斜
  2. 02Control surface控制表面Acrylic, PCB details, legends, fasteners亚克力, PCB 细节, 文字与螺丝
  3. 03Interactive parts交互零件Keys, rotary control, joystick, record state按键, 旋钮, 摇杆与录音状态
  4. 04Material response材质响应Frost, transmission, metal, leather, light雾面, 透光, 金属, 皮质与灯光
03

The interactions are part of the model. 交互本身就是模型的一部分.

The opaque keys, translucent keys, and record key have slightly different sounds. The keys travel. The joystick moves and returns. The white control rotates. The edge can breathe, react, or glow while recording. These are not animations pasted over a picture. They are transforms and material states attached to a hierarchy of parts.

白色按键, 透明按键和录音键有略微不同的声音. 键帽会下沉. 摇杆会移动并回中. 白色旋钮可以旋转. 边缘灯可以呼吸, 响应按键, 也可以在录音时持续发光. 这些不是贴在图片上的动画, 而是绑定在零件层级上的变换与材质状态.

04

A reconstruction can be honest without pretending to be exact. 重建可以诚实, 不必假装绝对精确.

The visible proportions and materials were tuned against multiple views. Hidden wall thickness, internal hardware, and some underside transitions are informed approximations. This is a real-time browser model built to preserve the object's identity and behavior, not a manufacturing CAD file.

可见的比例与材质来自多张参考图的反复校对. 看不见的壁厚, 内部结构和一部分底部过渡属于有依据的近似. 这是为了保留物体身份与行为而制作的实时浏览器模型, 不是可直接生产的 CAD 文件.

I still own the original. Now the idea is free to inspect. 原物还在我手里. 但这个想法现在可以被任何人拆开看.

Go back to the model, press the record key, drag both controls, turn on the breathing light, or export the generated object as a GLB. 回到模型, 按下录音键, 移动两个控制件, 打开呼吸灯, 或者把程序生成的物体导出为 GLB.

RETURN TO THE BUTTONS 回去继续按