À propos du projet

flybrain-sdk est un SDK Python en phase alpha (0.4) permettant d'exécuter des simulations de petits connectomes et de les intégrer dans des jeux, des démos audio et des expériences. Il est délibérément conçu pour le CPU : le backend de référence est un runtime NumPy leaky integrate-and-fire (LIF) basé sur des listes d'arêtes float64, donc aucune configuration GPU ou CUDA n'est requise. Python 3.9+ et NumPy sont les seules exigences d'exécution, et l'importation du package ou le chargement du modèle d'exemple fonctionne hors ligne. API principale. Une session commence par FlyBrain.load("toy", backend="cpu"), qui accepte les données intégrées, un chemin JSON de modèle local ou un objet Connectome. À partir de là, stimulate(name, strength, duration_ms) planifie une impulsion de courant finie pour le tick suivant, step(n) avance de n ticks de simulation fixes et renvoie un état final immuable, et action() lit les intensités motrices indépendantes sans faire avancer le temps. save()/restore() écrivent et rechargent un point de contrôle contenant le modèle, la configuration, la dynamique et les stimuli en attente ; advance(duration_ms=...) offre une variante basée sur la durée. Les canaux sensoriels du modèle d'exemple sont food, looming_left, looming_right et touch ; les canaux moteurs sont walk, turn_left, turn_right et jump, chacun compris entre 0 et 1 et décrit comme des valeurs de contrôle heuristiques plutôt que des probabilités ou des vitesses mesurées. Le mouvement et le rendu du jeu sont laissés à l'application hôte. Backends. Seul le backend cpu est implémenté. Les noms wasm et cuda existent en tant qu'interfaces réservées qui lèvent une BackendUnavailableError ; le projet précise que CUDA et WASM ne sont pas des runtimes implémentés. Modèles. La démo hors ligne intégrée est un circuit de 12 neurones écrit à la main. Un modèle MaleCNS distinct d'environ 3,8 Mo (male-cns-escape-v1) fait fonctionner 313 neurones sources réels et 20 607 arêtes anatomiques avec des paramètres LIF explicitement supposés, documentés dans une fiche modèle avec une recette reproductible. Un catalogue hors ligne peut être inspecté via list_models() et model_info() ; fetch_model() effectue une requête réseau explicite, met les ressources en cache localement et renvoie les chemins de fichiers. Les équivalents CLI incluent "python -m flybrain models list|info|download". Les modèles biologiques nécessitent un indicateur download=True explicite. Le wheel ne contient aucun modèle volumineux, et les ressources brutes Feather/NPY ne peuvent pas encore être passées directement à FlyBrain.load(). Lectures et interventions. Les utilisateurs peuvent sélectionner des populations de neurones (par exemple par cell_type), observer des champs tels que rates_hz, lier des noms de lecture personnalisés à des groupes, stimuler des cellules sélectionnées avec un courant d'amplitude, de durée et d'unités spécifiées, et réduire au silence des groupes via une couche d'intervention qui peut être relâchée. L'exemple open_circuit et le guide de reproduction MaleCNS illustrent le flux de travail. Kits de démo et outils de navigateur. Une boucle Session prend en charge des encodeurs de caractéristiques, des lectures de taux et des environnements remplaçables, ainsi que des points de contrôle et un replay de feedback vérifié. "python examples/demo_session.py dodge" et "... tones" génèrent des enregistrements, des points de contrôle et un HTML de lecture autonome, le modèle tones exportant également en WAV. Un laboratoire de circuit via navigateur fonctionne en direct, permettant aux visiteurs de stimuler des cellules réelles ou d'exemple, de réduire les sorties au silence, d'inspecter les taux et de télécharger une démo HTML éditable ; des visionneuses de galerie rejouent des exécutions Python enregistrées. Un package runtime CPU TypeScript est présent dans le dépôt. Installation et build. Le package n'est pas publié sur PyPI, l'installation se fait donc via GitHub (pip install "flybrain-sdk @ git+https://github.com/freeman-1984-coder/flybrain-sdk.git") ou via un clone utilisant pip install -e ., optionnellement avec l'extra dev pour pytest. Les artefacts de distribution sont produits avec python -m build et vérifiés avec twine check. Notes sur la portée et l'honnêteté. Les auteurs décrivent le SDK comme une infrastructure pour les expériences, et non comme une émulation validée d'une mouche : le câblage seul ne détermine pas les paramètres physiologiques, les effets des récepteurs, l'encodage sensoriel, le décodage moteur, un corps ou l'apprentissage, et la démo ne possède aucune plasticité, morphologie, vision réaliste ou comportement biologique inféré. Les performances CPU en temps réel pour un cerveau complet n'ont pas été établies. Le code et les données d'exemple originales sont sous licence MIT ; les jeux de données tiers conservent leurs propres licences et exigences de citation. Le projet déclare être indépendant et non affilié à Janelia, FlyWire, Google ou aux auteurs des jeux de données. Les domaines de contribution listés incluent des sources de modèles versionnées avec métadonnées de licence et d'intégrité, des importateurs FlyWire, des adaptateurs Godot/Unity et un port WASM de la dynamique de référence.