Ingeniería inversa de un sofá cama de 1970, con una IA a los mandos de Blender
Tres teorías, un pivote único y un respaldo que da un salto mortal hacia delante

Ilustración: reinterpretación al estilo manga de una foto del vendedor — el original está en justchairs.eu.
Me crucé en internet con un sofá cama checoslovaco de los años 70, firmado OPP Drevovyroba, a la venta en una tienda de Budapest. Línea baja, reposabrazos esculturales en contrachapado de teca curvado, y un mecanismo despachado en una frase: «el sofá se transforma en cama con un solo gesto». 1 550 €, a 1 500 km de mi casa, y unas dimensiones que no encajan en mi salón. La conclusión se imponía: en lugar de comprarlo, volver a dibujarlo — y aprovechar para entenderlo.
Esta entrada cuenta el ejercicio, llevado a cabo con una IA (Claude) que pilota Blender en directo. Spoiler: la IA se equivocó tres veces sobre el mecanismo, y eso es precisamente lo que hace interesante la historia.
El montaje
En cuanto a herramientas, la cosa se ha vuelto casi rutinaria: Blender, un pequeño addon que abre un servidor en la máquina (BlenderMCP) y la IA que se conecta a él. Diez minutos de instalación. A partir de ahí, escribe Python dentro de Blender, construye geometría, hace capturas del viewport para comprobar su trabajo y vuelve a empezar. Yo miro el modelo girar en directo en mi pantalla y comento.
La apuesta desde el principio: un modelo paramétrico. Nada de esculpir con el ratón, sino un script con un bloque de parámetros en cabecera — anchura, altura de asiento, grosor de los cojines, inclinación del respaldo — y toda la geometría, mecanismo incluido, que se recalcula al cambiar un valor. Veremos que esta decisión salvó la partida más de una vez.

Tres teorías para un mecanismo
El vendedor aporta unas quince fotos, ninguna del mecanismo en acción. Así que hubo que deducir.
Teoría n.º 1: la bisagra simple. Primera interpretación de la IA: el respaldo bascula hacia atrás sobre una bisagra, como un clic-clac. Modelado, animado… y demolido al mirar mejor las fotos: en posición cama, la franja delantera del colchón queda delante del asiento, no detrás. El respaldo pasa, por tanto, por encima del asiento. Adiós a la bisagra.
Teoría n.º 2: la cinemática de cuatro barras. Si el respaldo tiene que sobrevolar el asiento sin chocar con él, me decía yo, tiene que girar y trasladarse — o sea, dos pivotes y unas bieletas. La IA se tomó la idea en serio, muy en serio incluso: escribió un solver que coloca los pivotes por búsqueda numérica a lo largo de las mediatrices de las dos poses, maximizando la holgura entre respaldo y asiento durante el vuelco. Resultado: un mecanismo de cuatro barras perfectamente funcional, con 17 mm de holgura verificados en todo el recorrido. Elegante. Y completamente falso.
Teoría n.º 3: el pivote único. Fue un primer plano del reposabrazos lo que zanjó la cuestión: los tornillos que unen el brazo al respaldo son una fijación rígida, no un pivote. El brazo y el respaldo forman una sola pieza móvil, que gira alrededor del espárrago redondo visible en el costado del cajón. Un solo pivote por lado. Y ahí todo se ilumina: como el pivote está bajo y centrado, el arco de rotación sube por encima del asiento. Nunca hubo ningún problema de colisión que resolver. Los diseñadores checos no necesitaban bieletas — simplemente habían colocado bien un eje.
La lección merece enmarcarse: cuando la IA entiende mal la realidad, no se equivoca tímidamente — sobreingenieriza. El mecanismo de cuatro barras era la respuesta brillante a un problema que no existía.

El bonito gesto matemático sobrevivió al naufragio de la teoría n.º 2: dos poses de un sólido en el plano determinan un centro de rotación único — la intersección de las mediatrices. Ya no hace falta búsqueda numérica: el pivote se calcula, exactamente. Y cuando se le da la geometría de entrada correcta, cae a pocos milímetros de la ubicación del espárrago original. Una bonita validación cruzada, cincuenta años después.
El reposabrazos que se convierte en pata
Otro hallazgo de las fotos en posición cama: el respaldo sobresale 46 cm en voladizo por delante del cajón, y es el reposabrazos el que lo sostiene — al bascular, la rama del reposabrazos apunta al suelo y su extremo se apoya en él, como un puntal improvisado. La pequeña bandeja donde uno apoyaba el codo se convierte en un patín.
En el modelo paramétrico invertimos la lógica: en lugar de dibujar el reposabrazos y luego constatar dónde aterriza, la IA calcula sus puntos de apoyo por rotación inversa a partir de su objetivo en el suelo. La punta del reposabrazos se define como «el punto que, tras una rotación de 110°, toca el suelo en y = -47 cm». Comprobación en el frame final: z = 0,0 mm. De paso se entiende también por qué el reposabrazos original es tan corto y está tan retrasado: su posición no es una elección estética, es la restricción de aterrizaje. La forma sigue al mecanismo.

Donde superamos al original
Entender está bien; mejorar está mejor. Tres defectos del mueble original pasaron por el tamiz.
El colchón con dos firmezas. En el original, el asiento grueso y el respaldo más fino dan una cama con dos zonas. Corrección: grosor común de 14,5 cm en todas partes, superficie de descanso de 126 × 200 cm perfectamente uniforme.
El asiento de 65 cm de profundidad. Imposible recostarse manteniendo los pies en el suelo. Mirando mejor, el original ya hace trampa: su respaldo no está en el borde trasero sino adelantado sobre la plataforma, y la zona muerta que queda detrás se convierte en cama al desplegar. Lo parametrizamos como es debido: prof_utile = 50 cm, y el pivote se recalcula solo.
La cara mullida en el lado equivocado. El verdadero rompecabezas. El vuelco hacia delante expone el dorso del respaldo como superficie de descanso: si la cara delantera es mullida para sentarse, se duerme sobre la cara firme. El original tomó partido y peor para el asiento. Nuestra solución: un eje central que atraviesa el respaldo por su mitad. Durante el vuelco, el respaldo da media vuelta sobre sí mismo — y la misma cara mullida sirve de respaldo de día y de cama de noche. Consecuencia en cascada: el brazo ahora se detiene a media altura del respaldo para sostener ese cojinete… justo a la altura del reposabrazos. El reposabrazos es el cojinete.
Quedaba impedir que el respaldo girase libremente a su antojo. Primera idea: un pestillo. Segunda idea, mucho mejor: un tetón que corre por una ranura semicircular de 180°, concéntrica al eje, fresada en la cara interior del brazo. Los extremos de la ranura son los topes de las dos posiciones — el recorrido de la ranura es el recorrido de la media vuelta. Cero cerrojos que manipular, indexación automática, y en ambas poses las cargas aprietan el tetón contra su tope. Verificado en el modelo: el tetón está exactamente en el extremo de la ranura en las dos posiciones.


Lo que me llevo de esto
Una foto vale más que mil tokens. Las tres correcciones decisivas vinieron de primeros planos que le envié a la IA: los tornillos rígidos, el reposabrazos-pata, el respaldo adelantado. Razona notablemente bien — pero sobre lo que se le muestra.
La IA sobreingenieriza cuando entiende mal. El solver de cuatro barras era magnífico e inútil. Desconfíen de las soluciones brillantes: comprueben primero el problema.
Lo paramétrico abarata los errores. Tres rediseños completos del mecanismo, y cada vez unos minutos de recálculo en lugar de horas de remodelado. Como los puntos de anclaje (pivote, apoyos en el suelo, cojinete) se calculan en lugar de colocarse a mano, todo sigue.
La colaboración tiene sentido. Ella calcula intersecciones de mediatrices y verifica holguras al milímetro; yo veo que un asiento de 65 cm de profundidad es invivible y que un tornillo no es un pivote. Ninguno de los dos habría producido este diseño por su cuenta.
Continuará en el próximo episodio: planos 2D acotados, detalle del cojinete y de la ranura, y fabricación en contrachapado de 18. El script y el modelo ya funcionan — solo faltan las dimensiones de mi salón.
Los archivos
Todo se puede descargar, sírvanse:
sofa_parametrique.py— el script completo: parámetros, cálculo del pivote, construcción, animación. Para abrir en Blender (pestaña Scripting) y volver a ejecutar después de cambiar losPARAMS.canape_convertible.blend— la escena de Blender con la animación de vuelco (frame 1 = sofá, frame 61 = cama).canape_convertible.glb— el modelo en formato glTF, animación incluida, legible en cualquier parte (visores 3D en línea, motores de juego, RA).
Fotos del sofá original: justchairs.eu. Modelo 3D: Blender 5.1 + BlenderMCP.