Kenney Shape para macOS
Portado a macOS · Herramientas de desarrollo
Un toolkit de compatibilidad open source que lleva la versión Linux de Kenney Shape a macOS mediante un runtime compatible, adaptadores nativos y parches concretos de ensamblado.
Stack
macOS, Unity, Python, Objective-C, C#, Mono.Cecil, OpenGL
Enlaces

Resumen
Desarrollé un toolkit no oficial que crea una app funcional para macOS a partir de la descarga Linux de Kenney Shape 2.0.0 del usuario. Conserva los recursos y las herramientas de modelado originales mientras adapta el runtime y la integración con el escritorio de macOS.
El resultado es un build local reproducible: proporcionas la versión Linux original, ejecutas el constructor en Python y obtienes un bundle .app firmado sin instalar el editor de Unity.
Mi aportación
- Identifiqué la versión del player de Unity y seleccioné un runtime Intel con OpenGL 4.1 capaz de utilizar los shaders incluidos en la versión Linux.
- Implementé un adaptador Cocoa en Objective-C para los diálogos de apertura, guardado y selección de carpetas, con callbacks asíncronos, filtros de extensión y rutas UTF-8.
- Desarrollé un parcheador en C# con Mono.Cecil para corregir las rutas de los ejemplos y añadir atajos con Command en una copia local del ensamblado de la aplicación.
- Automaticé con Python la extracción del runtime, el montaje del bundle, la verificación de entradas y la firma ad hoc.
Validación y alcance
La ejecución de validación documentada cargó los 159 proyectos de ejemplo, modificó y guardó un proyecto, lo volvió a abrir y comprobó las exportaciones OBJ, STL y SVG. El repositorio también incluye pruebas de validación de entradas y pruebas independientes de los diálogos nativos.
El build actual se probó en un Apple M4 con Rosetta 2. Utiliza un runtime Intel y OpenGL; el soporte nativo ARM/Metal y la compatibilidad con más versiones de macOS quedan como trabajo futuro.
El toolkit tiene licencia MIT. El usuario aporta Kenney Shape por separado y proporciona el componente de Unity compatible o lo descarga durante el build.