Sobre el proyecto

flybrain-sdk es un SDK de Python en etapa alfa (0.4) para ejecutar simulaciones de conectomas pequeños e integrarlos en juegos, demos de audio y experimentos. Está diseñado deliberadamente para priorizar la CPU: el backend de referencia es un tiempo de ejecución de integrate-and-fire con fugas (LIF) de NumPy sobre listas de aristas float64, por lo que no requiere configuración de GPU o CUDA. Python 3.9+ y NumPy son los únicos requisitos de ejecución, y la importación del paquete o la carga del modelo de juguete incluido funciona sin conexión. API Principal. Una sesión comienza con FlyBrain.load("toy", backend="cpu"), que acepta los datos incluidos, una ruta JSON de un modelo local o un objeto Connectome. A partir de ahí, stimulate(name, strength, duration_ms) programa un pulso de corriente finito para el siguiente tick, step(n) avanza n ticks de simulación fijos y devuelve un estado final inmutable, y action() lee intensidades motoras independientes sin avanzar el tiempo. save()/restore() escriben y recargan un checkpoint que contiene el modelo, la configuración, la dinámica y los estímulos pendientes; advance(duration_ms=...) ofrece una variante basada en la duración. Los canales sensoriales del modelo de juguete son food, looming_left, looming_right y touch; los canales motores son walk, turn_left, turn_right y jump, cada uno entre 0 y 1 y descritos como valores de control heurísticos en lugar de probabilidades o velocidades medidas. El movimiento y el renderizado del juego quedan delegados a la aplicación anfitriona. Backends. Solo está implementado cpu. Los nombres wasm y cuda existen como interfaces reservadas que lanzan BackendUnavailableError; el proyecto indica que CUDA y WASM no son tiempos de ejecución implementados. Modelos. La demo offline incluida es un circuito de 12 neuronas creado manualmente. Un modelo MaleCNS independiente de aproximadamente 3.8 MB (male-cns-escape-v1) ejecuta 313 neuronas fuente reales y 20,607 aristas anatómicas con parámetros LIF asumidos explícitamente, documentados en una tarjeta de modelo con una receta reproducible. Un catálogo offline puede inspeccionarse mediante list_models() y model_info(); fetch_model() realiza una solicitud de red explícita, almacena los activos localmente y devuelve las rutas de los archivos. Los equivalentes de CLI incluyen "python -m flybrain models list|info|download". Los modelos biológicos requieren un flag explícito download=True. El wheel no incluye modelos grandes, y los activos raw de Feather/NPY aún no pueden pasarse directamente a FlyBrain.load(). Lecturas e intervenciones. Los usuarios pueden seleccionar poblaciones de neuronas (por ejemplo, por cell_type), observar campos como rates_hz, vincular nombres de lectura personalizados a grupos, impulsar células seleccionadas con corriente de amplitud, duración y unidades especificadas, y silenciar grupos a través de una capa de intervención que puede liberarse. El ejemplo open_circuit y la guía de reproducción de MaleCNS muestran el flujo de trabajo. Kits de demo y herramientas de navegador. Un bucle de Session admite codificadores de características, lecturas de tasa y entornos reemplazables, además de checkpoints y reproducción de retroalimentación verificada. "python examples/demo_session.py dodge" y "... tones" generan grabaciones, checkpoints y HTML de reproducción independiente, y la plantilla de tones también exporta WAV. Un laboratorio de circuitos en el navegador funciona en vivo, permitiendo a los visitantes estimular células reales o de juguete, silenciar salidas, inspeccionar tasas y descargar una demo HTML editable; los visores de galería reproducen ejecuciones de Python grabadas. Existe un paquete de tiempo de ejecución de CPU en TypeScript en el repositorio. Instalación y construcción. El paquete no está publicado en PyPI, por lo que la instalación es desde GitHub (pip install "flybrain-sdk @ git+https://github.com/freeman-1984-coder/flybrain-sdk.git") o desde un clon usando pip install -e ., opcionalmente con el extra dev para pytest. Los artefactos de distribución se producen con python -m build y se verifican con twine check. Notas sobre el alcance y honestidad. Los autores describen el SDK como una infraestructura para experimentos, no como una emulación validada de una mosca: el cableado por sí solo no determina los parámetros fisiológicos, los efectos de los receptores, la codificación sensorial, la decodificación motora, un cuerpo o el aprendizaje, y la demo no tiene plasticidad, morfología, visión realista ni comportamiento biológico inferido. No se ha establecido el rendimiento de CPU en tiempo real para el cerebro completo. El código y los datos originales del modelo de juguete tienen licencia MIT; los conjuntos de datos de terceros mantienen sus propias licencias y requisitos de citación. El proyecto declara que es independiente y no está afiliado a Janelia, FlyWire, Google ni a los autores del conjunto de datos. Las áreas de contribución enumeradas incluyen fuentes de modelos versionadas con metadatos de licencia e integridad, importadores de FlyWire, adaptadores de Godot/Unity y un puerto WASM de la dinámica de referencia.