---
title: "Ingeniería inversa de un sofá cama de 1970, con una IA a los mandos de Blender"
subtitle: "Tres teorías, un pivote único y un respaldo que da un salto mortal hacia delante"
description: "Un sofá cama checoslovaco visto en internet, una IA que pilota Blender y tres teorías equivocadas antes de la buena. Una reconstrucción paramétrica."
date: 2026-07-05
image: images/sofa/00-illustration-manga.png
slug: retro-ingenierie-convertible-1970
lang: es
tags: [blender, ia, mueble, mid-century, paramétrico, mecánica]
---

![El sofá cama OPP Drevovyroba, en versión tinta y tramas](../images/sofa/00-illustration-manga.png)

*Ilustración: reinterpretación al estilo manga de una foto del vendedor --- el original está en [justchairs.eu](https://justchairs.eu/products/mid-century-convertible-sofa-by-opp-drevovyroba-1970s).*

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](https://justchairs.eu/products/mid-century-convertible-sofa-by-opp-drevovyroba-1970s). 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](https://github.com/ahujasid/blender-mcp)) 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.

![El modelo en posición sofá](../images/sofa/04-canape-34.png)

## 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.

![A mitad de vuelco: el respaldo sobrevuela el asiento](../images/sofa/02-mi-bascule.png)

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.

![Posición cama: voladizo sostenido por el reposabrazos](../images/sofa/03-lit-profil.png)

## 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.

![La ranura de 180° y su tetón, en la cara interior del brazo](../images/sofa/06-gorge-teton.png)

![Posición cama: la cara mullida queda arriba](../images/sofa/05-lit-34-face-moelleuse.png)

## 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`](../assets/sofa/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 los `PARAMS`.
- [`canape_convertible.blend`](../assets/sofa/canape_convertible.blend) --- la escena de Blender con la animación de vuelco (frame 1 = sofá, frame 61 = cama).
- [`canape_convertible.glb`](../assets/sofa/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](https://justchairs.eu/products/mid-century-convertible-sofa-by-opp-drevovyroba-1970s). Modelo 3D: Blender 5.1 + [BlenderMCP](https://github.com/ahujasid/blender-mcp).*
