Nota

La historia de OpenSees: de una tesis en Berkeley a uno de los motores de análisis sísmico más importantes del mundo

Cómo OpenSees pasó de una arquitectura experimental de elementos finitos en UC Berkeley a convertirse en una plataforma abierta para análisis estructural, geotécnico y sísmico no lineal.

Pórtico de nodos y elementos con bucles de histéresis en cian sobre fondo oscuro, estilo AEC Hub.
En este artículo

Cuando hoy un ingeniero escribe:

import openseespy.opensees as ops

es fácil pensar que OpenSees es simplemente otra librería de Python para análisis estructural.

No lo es.

Detrás de esa línea existe una historia de casi tres décadas de investigación en ingeniería sísmica, análisis no lineal, elementos finitos, computación científica y software abierto.

OpenSees no nació como un programa comercial con una interfaz gráfica, ni como una herramienta diseñada para competir directamente con ETABS, SAP2000 o Abaqus.

Nació de una pregunta mucho más fundamental:

¿Cómo construir una plataforma de simulación suficientemente flexible para que los investigadores puedan implementar nuevos modelos, elementos, algoritmos y métodos de análisis sin tener que crear un programa de elementos finitos desde cero cada vez?

La respuesta terminaría convirtiéndose en OpenSees — Open System for Earthquake Engineering Simulation.


Antes de OpenSees: el problema del software de ingeniería sísmica

Durante las décadas de 1970, 1980 y buena parte de los años noventa, una gran cantidad de herramientas de análisis estructural habían sido desarrolladas alrededor de modelos, algoritmos y capacidades relativamente específicas.

Esto generaba varios problemas.

Los investigadores podían desarrollar un nuevo:

  • modelo constitutivo,
  • elemento finito,
  • algoritmo de solución,
  • método de integración,
  • modelo de plasticidad,
  • procedimiento de análisis dinámico,

pero para probarlo necesitaban integrarlo dentro de algún software existente o desarrollar infraestructura computacional adicional.

Además, una parte importante del software producido en universidades terminaba vinculada a tesis doctorales o proyectos individuales.

Cuando el investigador abandonaba la universidad, el código podía quedar sin mantenimiento.

El proyecto que eventualmente se convertiría en OpenSees trató de resolver precisamente este problema: crear una infraestructura común y extensible para investigación computacional en ingeniería sísmica.


1997: la tesis que sentó las bases de OpenSees

El punto de partida puede rastrearse hasta el trabajo doctoral de Frank McKenna en la Universidad de California, Berkeley.

En 1997 McKenna presentó su tesis:

Object-Oriented Finite Element Programming: Frameworks for Analysis, Algorithms and Parallel Computing.

Su director fue Gregory L. Fenves, quien posteriormente tendría un papel fundamental en el desarrollo de OpenSees.

La idea central era utilizar programación orientada a objetos para construir una arquitectura de elementos finitos modular.

En lugar de desarrollar un enorme programa monolítico, el sistema podía dividirse en componentes independientes.

Por ejemplo:

Domain
 ├── Nodes
 ├── Elements
 ├── Materials
 ├── Constraints
 └── Loads

Analysis
 ├── Constraint Handler
 ├── DOF Numberer
 ├── Algorithm
 ├── Integrator
 ├── Linear System
 └── Solver

Cada componente tendría una responsabilidad concreta y podría ser reemplazado por otro.

Esto parece normal hoy.

En los años noventa era una decisión arquitectónica extremadamente importante para un programa científico de este tipo.

La documentación de desarrollo de OpenSees indica que, aunque muchas clases y capacidades fueron añadidas posteriormente, la arquitectura fundamental planteada en aquella tesis ha cambiado relativamente poco.

Esa estabilidad es una de las claves para entender por qué OpenSees ha sobrevivido durante tanto tiempo.


De la tesis a G3

Antes de llamarse OpenSees, el framework fue conocido como G3.

El nombre estaba relacionado con uno de los grupos del Pacific Earthquake Engineering Research Center (PEER) encargado de desarrollar plataformas de simulación para la ingeniería sísmica basada en desempeño.

PEER había sido creado como un centro de investigación multiinstitucional liderado desde UC Berkeley.

Su objetivo no era simplemente calcular fuerzas en estructuras.

La visión era mucho más amplia: desarrollar herramientas para estudiar el comportamiento de infraestructura sometida a terremotos considerando fenómenos como:

  • comportamiento estructural no lineal,
  • comportamiento geotécnico,
  • interacción suelo-estructura,
  • cimentaciones,
  • licuefacción,
  • incertidumbre,
  • daño y desempeño.

Era exactamente el tipo de problema para el cual una arquitectura modular tenía sentido.


1999–2000: nace OpenSees

A finales de los años noventa el proyecto comenzó a consolidarse como una plataforma independiente.

Los archivos históricos del código contienen copyrights de la Universidad de California desde 1999, mientras que una de las referencias académicas tradicionales del proyecto es:

McKenna, F., Fenves, G. L. y Scott, M. H. (2000). Open System for Earthquake Engineering Simulation.

Alrededor del año 2000 apareció formalmente el nombre:

OpenSees

Open System for Earthquake Engineering Simulation

El cambio de nombre reflejaba una idea importante.

OpenSees no debía ser simplemente un programa para realizar análisis.

Debía ser un sistema abierto para construir simulaciones de ingeniería sísmica.


¿Por qué “Open System”?

La palabra Open tiene varias implicaciones.

OpenSees fue desarrollado siguiendo una filosofía de colaboración donde investigadores podían incorporar nuevos componentes al framework.

Un investigador podía implementar:

  • un nuevo material,
  • un nuevo elemento,
  • un integrador,
  • un algoritmo de solución,
  • un recorder,
  • un método de análisis,
  • una técnica de simulación.

Y esos componentes podían ser reutilizados por otros investigadores.

Esta filosofía resolvía un problema muy frecuente en investigación académica: evitar que cada grupo tuviera que reconstruir toda la infraestructura numérica necesaria para probar una nueva idea.

En otras palabras:

OpenSees convirtió el programa de elementos finitos en una plataforma de investigación.


C++ en el corazón de OpenSees

El núcleo de OpenSees fue desarrollado principalmente en C++.

Esto tampoco fue accidental.

C++ permitía combinar:

  • alto rendimiento,
  • programación orientada a objetos,
  • administración explícita de memoria,
  • integración con bibliotecas numéricas,
  • extensibilidad.

La arquitectura podía representar conceptos de ingeniería directamente como objetos.

Por ejemplo:

Node
Element
Material
Section
Domain
Integrator
Algorithm
Solver
Recorder

Cada clase podía implementar una parte del problema.

Esta estructura facilitaba algo fundamental: composición.

Un modelo estructural no necesitaba depender de un único algoritmo o solver.

Podía combinar diferentes implementaciones.

Décadas después, esta filosofía sería descrita formalmente en el artículo de 2010:

Nonlinear Finite-Element Analysis Software Architecture Using Object Composition.

La idea de composición explica buena parte de la flexibilidad que todavía caracteriza a OpenSees.


Tcl: la primera gran interfaz para los usuarios

Aunque el motor estuviera escrito en C++, exigir a cada ingeniero recompilar el programa para crear un modelo habría limitado enormemente su adopción.

La solución fue incorporar un intérprete.

Durante muchos años la interfaz principal de OpenSees fue Tcl — Tool Command Language.

Un modelo podía escribirse de esta manera:

model BasicBuilder -ndm 2 -ndf 3

node 1 0.0 0.0
node 2 0.0 3.0

fix 1 1 1 1

uniaxialMaterial Steel01 1 355.0 200000.0 0.01

Tcl tenía varias ventajas en ese momento:

  • era ligero,
  • podía integrarse fácilmente con aplicaciones C/C++,
  • permitía scripting,
  • evitaba recompilar el núcleo,
  • era ampliamente utilizado en herramientas de ingeniería y software científico.

Así apareció uno de los conceptos más importantes de OpenSees:

C++ → motor computacional
Tcl → interfaz de scripting

Esta separación sigue siendo fundamental para entender OpenSees actualmente.


OpenSees no era solamente análisis estructural

Uno de los objetivos de PEER era integrar diferentes áreas de la ingeniería sísmica.

Por eso OpenSees comenzó a incorporar capacidades geotécnicas desde etapas tempranas.

En mayo de 2000 comenzó un proyecto específico para desarrollar capacidades geotécnicas dentro de OpenSees.

En 2001 PEER publicó el reporte:

Development of Geotechnical Capabilities in OpenSees.

Entre las capacidades estudiadas estaban:

  • modelos constitutivos de suelos,
  • formulaciones sólido-fluido,
  • interacción suelo-cimentación-estructura,
  • visualización,
  • herramientas de control de calidad.

Esto diferenciaba a OpenSees de muchos programas enfocados exclusivamente en estructuras.

La meta era poder estudiar sistemas completos.

Suelo
   ↓
Cimentación
   ↓
Estructura
   ↓
Respuesta sísmica

Todo dentro del mismo entorno de simulación.


OpenSees y la ingeniería sísmica basada en desempeño

OpenSees creció paralelamente al desarrollo de la Performance-Based Earthquake Engineering, o PBEE.

La pregunta dejó de ser solamente:

¿La estructura resiste las fuerzas del código?

Y comenzó a convertirse en:

¿Cómo se comportará realmente la estructura durante diferentes niveles de terremoto?

Esto requiere estudiar fenómenos como:

  • formación de rótulas plásticas,
  • degradación de rigidez,
  • degradación de resistencia,
  • efectos cíclicos,
  • grandes desplazamientos,
  • respuesta dinámica no lineal,
  • colapso,
  • interacción suelo-estructura.

OpenSees estaba especialmente bien preparado para este tipo de problemas.

Por eso comenzó a utilizarse ampliamente en investigación sísmica avanzada.


La era NEES: simulación distribuida y computación avanzada

Durante los años 2000, OpenSees también formó parte del ecosistema estadounidense de investigación conocido como NEES — Network for Earthquake Engineering Simulation.

OpenSees fue adoptado como uno de los componentes de simulación del proyecto NEESgrid.

La arquitectura modular del programa facilitaba su integración con:

  • computación paralela,
  • bases de datos,
  • visualización,
  • experimentación híbrida,
  • simulación distribuida.

Esto era importante porque la ingeniería sísmica comenzaba a combinar experimentos físicos y simulación numérica.

Por ejemplo:

Parte de la estructura
        ↓
 ensayo físico real
        ↕
 OpenSees
        ↓
 resto de la estructura simulada

Este tipo de procedimientos se conoce como hybrid simulation.


El crecimiento de una comunidad

OpenSees dejó de ser progresivamente un proyecto desarrollado únicamente dentro de Berkeley.

Investigadores de distintas universidades comenzaron a contribuir:

  • nuevos elementos,
  • materiales,
  • modelos geotécnicos,
  • algoritmos,
  • herramientas de análisis.

Entre las instituciones asociadas históricamente con contribuciones importantes aparecen:

  • University of California, Berkeley,
  • Oregon State University,
  • University of California, San Diego,
  • University of Washington,
  • Stanford University,
  • además de investigadores de muchas otras instituciones.

Entre los desarrolladores que aparecen en la documentación oficial se encuentran nombres como:

  • Frank McKenna,
  • Gregory L. Fenves,
  • Filip C. Filippou,
  • Silvia Mazzoni,
  • Michael H. Scott,
  • Ahmed Elgamal,
  • Zhaohui Yang,
  • Pedro Arduino,
  • Gregory G. Deierlein,
  • Kincho Law.

La consecuencia fue importante:

OpenSees comenzó a acumular décadas de modelos desarrollados y utilizados dentro de investigación académica.


2006: el Command Language Manual

A medida que OpenSees crecía, también crecía la necesidad de documentar sus comandos.

En 2006 apareció una de las referencias históricas más conocidas:

Mazzoni, S., McKenna, F., Scott, M. H. y Fenves, G. L.
OpenSees Command Language Manual.

Durante muchos años este manual fue una de las principales referencias para aprender:

  • definición del modelo,
  • nodos,
  • materiales,
  • secciones,
  • elementos,
  • cargas,
  • análisis,
  • recorders.

Para una generación completa de investigadores, aprender OpenSees significó aprender Tcl y consultar este manual.


2010: la arquitectura de OpenSees se formaliza académicamente

En 2010 Frank McKenna, Michael H. Scott y Gregory L. Fenves publicaron:

Nonlinear Finite-Element Analysis Software Architecture Using Object Composition.

El artículo describe una de las ideas esenciales detrás del software:

object composition

En lugar de construir un programa donde cada análisis estuviera rígidamente conectado con un conjunto específico de componentes, OpenSees permite ensamblar diferentes objetos.

Por ejemplo:

Modelo
  +
Constraint Handler
  +
DOF Numberer
  +
Solution Algorithm
  +
Integrator
  +
Equation System
  +
Solver

Cambiar un componente no obliga necesariamente a reconstruir el resto.

Esta filosofía es una de las razones por las que OpenSees puede soportar una enorme variedad de procedimientos de análisis.


El problema de Tcl

Tcl funcionó extraordinariamente bien para OpenSees durante muchos años.

Pero el ecosistema científico cambió.

Python comenzó a convertirse en el lenguaje dominante para:

  • computación científica,
  • análisis de datos,
  • machine learning,
  • automatización,
  • visualización,
  • optimización.

Herramientas como:

NumPy
SciPy
Matplotlib
Pandas
Jupyter

transformaron la manera en que investigadores e ingenieros trabajaban.

En ese contexto era inevitable preguntarse:

¿Por qué no controlar OpenSees directamente desde Python?


OpenSeesPy: OpenSees entra al ecosistema Python

De esa necesidad apareció OpenSeesPy.

OpenSeesPy no reemplaza el motor de OpenSees.

Es una interfaz de Python para utilizar las capacidades del framework.

La relación puede entenderse así:

                    ┌──────────────┐
Tcl scripts ───────►│              │
                    │   OpenSees   │
Python ────────────►│     C++      │
                    │    Engine    │
                    └──────────────┘

El desarrollador principal de OpenSeesPy es Minjie Zhu, vinculado a Oregon State University.

Un modelo que históricamente se escribía utilizando comandos Tcl podía escribirse ahora utilizando Python.

Por ejemplo:

import openseespy.opensees as ops

ops.model("basic", "-ndm", 2, "-ndf", 3)

ops.node(1, 0.0, 0.0)
ops.node(2, 0.0, 3.0)

ops.fix(1, 1, 1, 1)

ops.uniaxialMaterial(
    "Steel01",
    1,
    355.0,
    200000.0,
    0.01
)

La diferencia parece pequeña.

Pero conceptualmente fue enorme.

OpenSees podía ahora integrarse directamente con todo el ecosistema científico de Python.


Lo que Python cambió

OpenSeesPy permitió utilizar OpenSees dentro de workflows mucho más amplios.

Por ejemplo:

Pandas
   ↓
generación de modelos
   ↓
OpenSeesPy
   ↓
análisis paramétrico
   ↓
NumPy
   ↓
Matplotlib
   ↓
visualización

También abrió la puerta a:

  • optimización estructural,
  • análisis masivos,
  • Monte Carlo,
  • procesamiento automático de resultados,
  • machine learning,
  • notebooks reproducibles,
  • generación procedural de modelos.

Esto cambió profundamente la ergonomía de OpenSees.

El programa dejó de estar limitado a scripts de un lenguaje relativamente especializado y pasó a convivir con uno de los mayores ecosistemas de computación científica del mundo.


Del terremoto a otros tipos de amenazas

Aunque el nombre continúa siendo:

Open System for Earthquake Engineering Simulation

el uso de OpenSees ha crecido más allá de terremotos.

La documentación moderna señala aplicaciones relacionadas con:

  • earthquake,
  • fire,
  • wind,
  • tsunami,
  • storm surge,

además de problemas generales de respuesta estructural y geotécnica.

Esto es posible porque el núcleo del programa no está restringido conceptualmente a una única carga.

Es, en esencia, un framework de simulación no lineal mediante elementos finitos con una enorme colección de componentes desarrollados alrededor de problemas de ingeniería civil.


OpenSees y la computación paralela

Otra característica presente desde la arquitectura inicial fue el interés por computación paralela.

Los análisis no lineales pueden ser extremadamente costosos.

Esto se vuelve todavía más importante en:

  • análisis paramétricos,
  • estudios probabilísticos,
  • modelos grandes,
  • análisis dinámicos,
  • investigación de colapso.

OpenSees desarrolló variantes y mecanismos para aprovechar múltiples procesos y recursos computacionales.

Esto ha permitido ejecutar simulaciones desde:

Laptop
   ↓
Workstation
   ↓
Cluster
   ↓
HPC
   ↓
Cloud

El mismo ecosistema puede escalar hacia problemas considerablemente mayores.


OpenSees en DesignSafe y la infraestructura moderna

Después de la era NEES, la infraestructura de investigación estadounidense evolucionó hacia plataformas como DesignSafe-CI, dentro del ecosistema de NHERI.

OpenSees continúa disponible allí como herramienta de simulación.

Esto muestra algo importante sobre su historia.

OpenSees sobrevivió a varias generaciones de infraestructura científica alrededor suyo.

Las plataformas cambiaron.

Los lenguajes cambiaron.

Las capacidades computacionales cambiaron.

Pero el núcleo conceptual del framework continuó siendo útil.


OpenSees en 2026

A septiembre de 2026 OpenSees continúa en desarrollo activo.

El sitio oficial de UC Berkeley registra OpenSees 3.8.0, publicado en febrero de 2026.

OpenSeesPy también distribuye versiones modernas para Linux, Windows y macOS.

Es decir, estamos hablando de un proyecto cuyas raíces arquitectónicas pueden rastrearse hasta 1997 y que continúa activo casi treinta años después.

Eso es poco común en software científico.


¿Por qué OpenSees ha sobrevivido tanto tiempo?

Probablemente no existe una sola razón.

Pero hay varias especialmente importantes.

1. Su arquitectura

OpenSees fue diseñado como framework, no simplemente como aplicación.

Eso permitió agregar capacidades sin reconstruir todo el sistema.


2. El código académico acumulado

Décadas de investigación produjeron:

  • elementos,
  • materiales,
  • algoritmos,
  • ejemplos,
  • validaciones,
  • publicaciones.

Recrear todo ese conocimiento desde cero sería extraordinariamente difícil.


3. Una comunidad científica real

OpenSees se convirtió en infraestructura compartida entre investigadores.

Cuando una herramienta se transforma en parte del proceso científico, su valor deja de depender únicamente de su interfaz.


4. El enfoque en análisis no lineal

OpenSees se especializó precisamente en una de las áreas más difíciles de la ingeniería estructural:

la simulación del comportamiento no lineal.

No intentó simplificar el problema para hacerlo parecer sencillo.

Expuso directamente muchos de los componentes que realmente controlan un análisis numérico.


5. Python rejuveneció el ecosistema

OpenSeesPy permitió conectar un motor desarrollado décadas atrás con herramientas modernas.

El resultado fue una combinación especialmente poderosa:

C++ maduro
+
modelos acumulados durante décadas
+
Python
+
automatización
+
computación científica

OpenSees no es solamente un programa

Quizá la mejor manera de entender OpenSees sea dejar de compararlo directamente con programas tradicionales.

ETABS, SAP2000 o Robot Structural Analysis están diseñados principalmente como aplicaciones de ingeniería.

OpenSees nació principalmente como un:

Framework de simulación

Eso significa que su fortaleza no es necesariamente proporcionar la interfaz más sencilla.

Su fortaleza está en permitir construir simulaciones extremadamente específicas.

Un investigador puede controlar:

  • el material,
  • el elemento,
  • el algoritmo,
  • el integrador,
  • el solver,
  • la convergencia,
  • los recorders,
  • el procedimiento de análisis.

Ese nivel de control es precisamente lo que hace que OpenSees pueda parecer difícil al principio.

Pero también explica por qué sigue utilizándose en investigación avanzada.


De G3 a OpenSeesPy

Si resumimos casi treinta años de evolución, la historia puede verse así:

1997
Tesis de Frank McKenna
Object-Oriented Finite Element Programming
        ↓
G3
Framework experimental de PEER
        ↓
1999–2000
OpenSees
        ↓
Tcl
Scripting para usuarios
        ↓
2000s
estructuras + geotecnia + NEES
        ↓
2006
Command Language Manual
        ↓
2010
arquitectura formalizada mediante object composition
        ↓
OpenSeesPy
Python como interfaz
        ↓
DesignSafe / HPC / Cloud
        ↓
2026
OpenSees 3.8

Lo interesante es que el concepto fundamental no cambió demasiado.

El proyecto continúa alrededor de la misma idea:

crear una infraestructura abierta y extensible donde la comunidad de ingeniería pueda implementar y compartir modelos avanzados de simulación.


¿Qué significa esto para un ingeniero actual?

Aprender OpenSees hoy no significa estudiar un software viejo.

Significa aprender a utilizar una infraestructura científica que ha acumulado casi tres décadas de conocimiento.

Y OpenSeesPy cambia considerablemente la barrera de entrada.

Un ingeniero que ya conoce Python puede combinar:

OpenSeesPy
+
NumPy
+
Pandas
+
Matplotlib
+
SciPy
+
Jupyter

para construir workflows que hace veinte años habrían requerido mucho más desarrollo.

Además, la aparición de agentes de IA y herramientas capaces de ejecutar código abre una nueva etapa.

En lugar de utilizar OpenSees únicamente de manera manual, es posible imaginar sistemas donde un agente pueda:

  1. generar un modelo;
  2. ejecutar OpenSees;
  3. revisar convergencia;
  4. modificar parámetros;
  5. procesar resultados;
  6. generar gráficos;
  7. comparar alternativas;
  8. documentar el análisis.

En ese contexto, OpenSees puede terminar siendo incluso más relevante que antes.

Porque un motor programable, automatizable y extensible encaja especialmente bien dentro de los nuevos workflows de ingeniería asistidos por IA.


Conclusión

OpenSees nació mucho antes de que Python dominara la computación científica y mucho antes de que habláramos de agentes de inteligencia artificial.

Su origen se encuentra en una tesis doctoral de 1997 sobre arquitectura orientada a objetos para elementos finitos.

Después se convirtió en G3.

Luego en OpenSees.

Se integró con Tcl.

Creció dentro de PEER.

Incorporó estructuras, geotecnia, interacción suelo-estructura, computación paralela y simulación híbrida.

Sobrevivió a la era NEES.

Entró al ecosistema Python mediante OpenSeesPy.

Y casi treinta años después continúa desarrollándose.

La lección más interesante quizá no sea exclusivamente sobre ingeniería estructural.

Es también una lección de arquitectura de software.

Cuando un motor científico está bien diseñado, es modular y permite que una comunidad construya sobre él, puede sobrevivir durante décadas.

Y esa es probablemente una de las razones por las que OpenSees sigue siendo una de las plataformas más importantes para simulación avanzada en ingeniería estructural y sísmica.


Referencias

  1. McKenna, F. (1997). Object-Oriented Finite Element Programming: Frameworks for Analysis, Algorithms and Parallel Computing. Ph.D. dissertation, University of California, Berkeley.

  2. McKenna, F., Fenves, G. L., & Scott, M. H. (2000). Open System for Earthquake Engineering Simulation. University of California, Berkeley.

  3. Jeremić, B. (2001). Development of Geotechnical Capabilities in OpenSees. PEER Report 2001-12, Pacific Earthquake Engineering Research Center, University of California, Berkeley.

  4. Mazzoni, S., McKenna, F., Scott, M. H., & Fenves, G. L. (2006). OpenSees Command Language Manual. University of California, Berkeley.

  5. McKenna, F., Scott, M. H., & Fenves, G. L. (2010). “Nonlinear Finite-Element Analysis Software Architecture Using Object Composition.” Journal of Computing in Civil Engineering, 24(1), 95–107.

  6. Pacific Earthquake Engineering Research Center. OpenSees.

  7. OpenSees — University of California, Berkeley. opensees.berkeley.edu.

  8. OpenSees Documentation.

  9. OpenSeesPy Documentation.

  10. DesignSafe-CI. OpenSees Overview.

Evaluación y limitaciones

Trata las notas siguientes como contexto de evaluación, no como un cálculo o una revisión verificados.

Úsalo como infraestructura abierta de elementos finitos para simulación no lineal estructural, geotécnica y sísmica. Consulta la documentación oficial para versiones e instalación, y cita los artículos de materiales, elementos o modelos específicos.