Visión General de ITO Gravity
ITO Gravity es la plataforma y el motor de almacenamiento de ingeniería física y digital (Central Data Vault). Está concebida para unificar y coordinar el ciclo de vida completo de un producto de base tecnológica, vinculando de forma trazable esquemas de hardware (BOM, Gerber, modelos CAD 3D) con sus respectivos repositorios de firmware y software.
A diferencia de los sistemas tradicionales que aíslan la electrónica del firmware y el diseño mecánico en silos independientes, ITO Gravity ofrece una única fuente de verdad con historial transaccional compartido. Esto asegura que cada equipo opere con las revisiones físicas correctas y compatibles, reduciendo errores críticos de fabricación y coordinando la convergencia técnica.
Instalación · Manual de Descarga
ITO CLI es el motor local y de código abierto (AGPLv3) que versiona tu hardware, firmware y diseño mecánico juntos. Corre completamente offline en tu máquina. Seguí estos pasos para tenerlo funcionando en menos de dos minutos.
Descargá el instalador
Bajá el ejecutable oficial para Windows x64 desde el último release de GitHub.
ito-installer-x86_64.exeEjecutá el instalador
Hacé doble clic en el .exe. Si Windows muestra el aviso de SmartScreen, hacé clic en Más información → Ejecutar de todas formas. El binario es open source y auditable.
Seguí el asistente
Completá los pasos del instalador. Al finalizar, ITO queda agregado al PATH del sistema automáticamente.
Verificá la instalación
Abrí una terminal nueva (PowerShell o CMD) y confirmá que el motor responde:
ito --version
Iniciá tu primer proyecto
Ubicate en la carpeta de tu proyecto de ingeniería y arrancá el versionado semántico:
cd mi-proyecto ito init
Recomendado: si al abrir la terminal el comando ito no es reconocido, reiniciá la computadora. En algunos equipos (sobre todo con políticas corporativas) el sistema recién toma el nuevo PATH tras un reinicio, y ITO empieza a andar sin problemas.
Integración y Visor CAD 3D
La plataforma incorpora un potente visor 3D interactivo basado en WebGL que lee directamente archivos geométricos estándar de ingeniería física como STP, STEP, STL y OBJ sin necesidad de instalar plugins o software local pesado.
A través de la API en la nube de Onshape, los operadores pueden conectar sus cuentas y cargar e importar geometrías y ensamblajes directamente en tiempo real en la bóveda, logrando una sincronización fluida del diseño industrial.
Capacidades del Visor CAD
- Formatos nativos soportados: STL, OBJ, STP, STEP, gTF.
- Modos de renderizado: Estructura de alambre (wireframe), sólido plano y sombreado premium.
- Importación directa y segura desde repositorios de Onshape públicos y privados autorizados.
Integración GitHub
Para vincular la capa física del hardware con el firmware de producción correspondiente, ITO Gravity se conecta directamente a GitHub a través de OAuth seguro.
Una vez autorizada la vinculación, la plataforma asocia las revisiones físicas en el Vault con los hashes de commit de GitHub, permitiendo una trazabilidad cruzada. Podrás ver de forma interactiva qué código firmware fue verificado y cargado en cada revisión específica de la placa de hardware.
Bitácora de Ingeniería en Notion
ITO Gravity permite incrustar bitácoras y registros de laboratorio técnicos directamente en el panel del proyecto mediante la API de Notion.
Esto permite centralizar la documentación ágil, las actas de diseño de hardware y las notas de laboratorio, enlazando directamente discusiones y hojas de ruta con las versiones de hardware del proyecto.
Control de Versiones y CLI (ITO)
Sincronizado en vivo desde el README del repositorio
ITO (糸) — Motor de Versionado Semántico y Almacenamiento CAS para Ingeniería de Hardware
ITO es una herramienta de línea de comandos (CLI) de nivel industrial y de código abierto diseñada bajo la plataforma ITO Gravity para la administración unificada del ciclo de vida y control de versiones en proyectos de ingeniería de hardware y sistemas embebidos.
A diferencia de los sistemas de control de versiones tradicionales como Git, que analizan diferencias por línea de texto plano y tratan los archivos de diseño CAD/3D como cajas negras binarias densas, ITO entiende la semántica física y eléctrica detrás de cada plano, lista de materiales (BOM) y asignación de pines de microcontroladores.
1. Arquitectura y Componentes Clave
[ ITO CLI (Interfaz Unificada) ]
│
┌──────────────────────────┼──────────────────────────┐
▼ ▼ ▼
[ GitEngine ] [ SemanticCadEngine ] [ FileHashEngine ]
(Módulo Firmware) (Módulo Electrónica) (Módulos Mecánica/Doc)
│ │ │
└──────────────────────────┼──────────────────────────┘
▼
[ Almacén de Objetos CAS ]
(.ito/objects/ SHA-256)
│
▼
[ Historial Transaccional ]
(.ito/history.toml)
Motores de Versionado Semántico Integrados
GitEngine(Firmware): Enlaza de manera inteligente el repositorio Git nativo de tu firmware a la transacción de ITO, registrando el hash del commit actual en los metadatos de ITO sin duplicar el código.SemanticCadEngine(Electrónica): Extrae de forma semántica el diseño de circuitos (KiCad, Eagle, EDIF, Proteus y Altium) para reportar diferencias lógicas en componentes (cambios de footprints, valores) y conexiones (nets), omitiendo diferencias de visualización del editor. El soporte de Proteus (.pdsprj) lee componentes, valores y footprints directamente del proyecto, sin exportar netlist a mano (extracción de nets en desarrollo). El soporte de Altium (.SchDoc/.PcbDoc) está en beta: trabaja sobre el archivo guardado en ASCII (*File → Save As → "Advanced Schematic ascii" / "PCB ASCII File"*) y extrae componentes; si recibe el binario nativo te indica cómo exportarlo. Para netlist de Altium se recomienda el camino EDIF.FileHashEngine(Mecánica, Documentación, Manufactura): Motor optimizado para procesar árboles completos de planos mecánicos (STEP, SolidWorks), PDFs y archivos de fabricación pesados.
Almacenamiento CAS (Content-Addressable Storage) con Deduplicación
Para optimizar el almacenamiento local y la sincronización con servidores, ITO implementa una base de datos direccionable por contenido:
- Cada archivo se identifica mediante el hash SHA-256 de su contenido.
- Los objetos se guardan estructurados en
.ito/objects/. - Deduplicación Total: Si múltiples módulos o versiones sucesivas contienen archivos idénticos (como modelos 3D pesados), estos se guardan una única vez física en disco, referenciándose mediante manifiestos de proyecto.
Integridad del Historial y Restauración Segura
El motor está diseñado para que cada versión sea verificable y las restauraciones no pierdan trabajo:
- Identidad por contenido (árbol Merkle): El ID de cada commit se deriva de un hash del *contenido real* de todos los módulos (más el commit padre, mensaje y timestamp), no de un resumen de texto. Esto hace la detección de cambios fiable (sin falsos "no hay cambios") y las versiones reproducibles y resistentes a colisiones.
- Restauración atómica y no destructiva:
ito restoreverifica que todos los objetos existan en el CAS antes de tocar el disco, restaura archivo por archivo de forma atómica (temporal +rename) y nunca elimina archivos no rastreados del usuario. - Escritura atómica de metadatos: El historial (
.ito/history.toml) se escribe con la técnica temporal +renamepara no corromperse ante un corte inesperado.
Motor de Exclusiones Inteligente (.itoignore)
Filtrado automático de archivos y carpetas pesadas/temporales de compilación para resguardar únicamente el diseño fuente de la disciplina:
- Exclusiones por defecto: Directorios de compilación y dependencias (
.git,.ito,.pio,target,node_modules,.venv,bin,obj,.vs,history), bloqueos de CAD (.lck), archivos temporales de Office/SolidWorks (~$*,.~*),*.tmp, respaldos*.bak, y respaldos/estado de sesión de Proteus (Project Backups/,*.pdsbak,*.workspace).
2. Instalación
Windows
Descargá el instalador ito-installer-x86_64.exe desde la última Release y ejecutalo.
- Agrega
itoalPATHdel sistema automáticamente. - El binario enlaza la CRT de forma estática: no necesitás instalar el "Visual C++ Redistributable".
- Se instala en el
Program Filesreal de 64 bits. - Tras instalar, reabrí la terminal para que tome el nuevo
PATH(una terminal ya abierta no lo hereda).
Linux (beta)
Instalación en una línea (no requiere sudo; el binario queda en ~/.local/bin):
curl -fsSL https://raw.githubusercontent.com/ITO-Gravity/ITO/main/install.sh | sh
El script detecta la arquitectura, baja el binario de la última Release y avisa si ~/.local/bin no está en tu PATH. El soporte de Linux es beta.
macOS
Todavía no disponible (planificado).
Verificar
ito guia
3. Referencia de Comandos CLI
El uso de la CLI está estructurado con base en estándares de comandos de Git y herramientas de desarrollo modernas.
| Comando | Descripción |
|---|---|
ito init | Inicializa un repositorio de ITO en el directorio actual, creando la estructura .ito/. |
ito new <nombre> | Crea un proyecto estructurado y normalizado para ingeniería multidisciplinar en el Workspace. |
ito folder <nombre> | Crea una carpeta personalizada en la raíz del proyecto y la registra como un módulo más, versionada junto al resto (alias: ito carpeta; --list para listarlas). |
ito status | Audita y reporta el estado actual de todos los módulos vinculados (BOM, CAD, Firmware). |
ito diff | Muestra diferencias semánticas detalladas de componentes y redes (nets) contra la última caché. |
ito commit [-m "msg"] | Ejecuta el linter eléctrico (ERC) y guarda una instantánea inmutable en el historial y el CAS. |
ito log | Muestra el historial completo de commits del proyecto y el resumen de cambios numéricos. |
ito restore <hash> | Restaura todos los módulos al commit indicado (acepta el hash corto). Pide confirmación porque sobrescribe el trabajo actual; -y/--yes la omite. No toca el código (firmware): solo informa; --con-codigo lo alinea también (ver Hilos y firmware). |
ito hilo [<nombre>] | Sin argumento, lista los hilos y marca el actual. Con nombre, abre un hilo nuevo (una línea de versiones paralela) desde donde estás y salta a él. |
ito cambiar <nombre> | Cambia de hilo, trayendo su versión al directorio de trabajo (alias ito switch; -y omite la confirmación; --con-codigo alinea también el firmware). |
ito lint | Ejecuta de forma estática reglas de diseño eléctrico semántico (ERC) sobre los módulos de electrónica. |
ito workspace | Muestra la ruta física del Workspace global y el conteo de proyectos registrados. |
ito workspace set [ruta] | Configura o cambia el directorio de trabajo del Workspace global. |
ito select | Menú interactivo de selección de proyectos que inyecta navegación automática a la consola activa. |
ito guia | Inicia el asistente interactivo para guiar al operador paso a paso (alias de select). |
ito link | Enlaza un directorio físico externo mediante un explorador de carpetas visual de Windows. |
ito links | Lista todos los enlaces configurados en el proyecto indicando su motor y herramienta. |
ito go <módulo> | Copia al portapapeles la instrucción para navegar a un módulo enlazado (firmware, electronics, etc.). |
ito login | Inicia sesión con tus credenciales de ITO Gravity (Email y Contraseña). |
ito clone <token> | Clona un proyecto existente desde el servidor remoto de ITO Gravity. |
ito push | Envía la última versión local del proyecto al servidor remoto de ITO Gravity. |
ito pull | Descarga la última versión registrada del proyecto desde el servidor remoto de ITO Gravity. |
ito update | Comprueba y actualiza ITO a la última versión disponible en GitHub de forma manual. |
4. Hilos: probar sin romper lo bueno
Un hilo es una línea de versiones paralela. Sirve para probar una idea sin tocar la versión estable: si no funciona, volvés y el experimento no dejó rastro. ITO llama "hilos" a sus ramas a propósito, para no confundirlas con las ramas de git del código (git = ramas, ITO = hilos).
ito hilo # ¿en qué hilo estoy? lista todos
ito hilo experimento # abro un hilo nuevo desde acá y salto a él
# ... pruebo cosas y hago 'ito commit' las veces que quiera ...
ito cambiar principal # no me convenció: vuelvo al hilo estable
ito cambiar experimento # si quiero, retomo el experimento donde lo dejé
Cada proyecto arranca con un hilo principal. Los proyectos creados con versiones anteriores lo adquieren automáticamente al primer comando, sin perder su historial.
Firmware y código: ITO no lo toca
El versionado del código es de git y de los programadores. Por eso ito restore y ito cambiar nunca modifican el repositorio de git del firmware: si alguien del equipo restaura una versión de hardware, no le arranca los cambios del código a quien lo está programando. ITO solo informa con qué commit de git corresponde cada versión.
Si querés alinear el código a mano, usá el git checkout que ITO te sugiere. Si preferís que ITO lo alinee por vos, agregá --con-codigo; aun así, ITO nunca pisa cambios sin commitear (si el firmware está "sucio", frena y te avisa).
5. Linter Eléctrico: Reglas de Diseño Semántico (ERC)
El comando ito lint realiza auditorías de integridad de circuitos con las siguientes reglas (código y severidad):
E001_FLOATING_INPUT(Advertencia): Pines de tipo entrada (Input) sin conexión a ninguna red eléctrica.E002_NO_DRIVER_NET(Advertencia): Redes con entradas conectadas pero sin ningún emisor de señal (salida, pasivo o bidireccional) que las alimente.E003_UNCONNECTED_POWER(Advertencia): Pines de alimentación (PowerInput) sin conectar en circuitos integrados.E004_OUTPUT_SHORT(Crítico): Dos o más pines de salida conectados en la misma red, provocando un cortocircuito por conflicto de salidas.
6. Actualizaciones Automáticas
ITO cuenta con un actualizador automático integrado conectado a GitHub Releases:
- Comprobación de fondo silenciosa: Cada 24 horas, ITO realiza una consulta rápida (con un límite de 3 segundos de timeout) al iniciar cualquier comando ordinario para comprobar si existe una versión más nueva en GitHub de forma silenciosa.
- Actualización manual: Puedes forzar la comprobación y actualización en cualquier momento utilizando el comando
ito updateoito update --force. - Soporte para repositorios privados: Si el repositorio de ITO es privado, puedes configurar la variable de entorno
GITHUB_TOKENoGH_TOKENen tu sistema para autenticar las peticiones del actualizador.
7. Desarrollo Local
Prerrequisitos
- Rust (edición 2021) y
cargo. - PowerShell en Windows (para la inyección de wrappers de navegación).
Compilación y Testeo
# Comprobar la compilación de la biblioteca y ejecutable
cargo check
# Ejecutar la suite de pruebas unitarias e integrales (49 tests)
cargo test
# Instalar globalmente el ejecutable de ITO en el sistema
cargo install --path . --force Flujo de Acceso
ITO Gravity opera bajo un estricto flujo lineal de onboarding para garantizar la validez legal y el cumplimiento del diseño de código abierto:
- Creación de Cuenta: Registro seguro con contraseña fuerte (mínimo 8 caracteres, mayúsculas, números y caracteres especiales).
- Validación de Correo: Confirmación de identidad del correo para evitar registros falsos.
- Elección de Licencia: Selección explícita de licencia de hardware abierto (CERN OHL, TAPR o Creative Commons) en tu primer proyecto.
Bóveda Criptográfica y Seguridad Activa
La seguridad y confidencialidad en los diseños físicos es un pilar principal en la plataforma:
Cifrado Simétrico AES-256
Los archivos de planos y datos ZIP se almacenan cifrados con clave simétrica en servidores privados, totalmente fuera de la raíz pública del sitio web, previniendo accesos directos.
Validación Dinámica de Descarga
Cada solicitud de descarga de planos o de versión de firmware valida criptográficamente la sesión activa y el nivel de acceso del usuario antes de descifrar el recurso.
Auditoría de Acceso
Se registra un historial inmutable de descarga por cada archivo, logueando la dirección IP, el timestamp de la petición y el identificador único del usuario.