প্রকল্প সম্পর্কে

flybrain-sdk হলো একটি আলফা-পর্যায়ের (0.4) Python SDK, যা ছোট কানেক্টোম সিমুলেশন চালানো এবং সেগুলোকে গেম, অডিও ডেমো এবং এক্সপেরিমেন্টের সাথে যুক্ত করার জন্য তৈরি করা হয়েছে। এটি ইচ্ছাকৃতভাবে CPU-first হিসেবে ডিজাইন করা হয়েছে: এর রেফারেন্স ব্যাকএন্ড হলো float64 এজ লিস্টের উপর ভিত্তি করে একটি NumPy leaky integrate-and-fire (LIF) রানটাইম, তাই এখানে কোনো GPU বা CUDA সেটআপের প্রয়োজন নেই। রানটাইমের জন্য শুধুমাত্র Python 3.9+ এবং NumPy প্রয়োজন, এবং প্যাকেজটি ইমপোর্ট করা বা সাথে থাকা টয় মডেল লোড করা অফলাইনেও সম্ভব। কোর API: একটি সেশন FlyBrain.load("toy", backend="cpu") দিয়ে শুরু হয়, যা বান্ডেল করা ডেটা, লোকাল মডেল JSON পাথ অথবা একটি Connectome অবজেক্ট গ্রহণ করে। সেখান থেকে, stimulate(name, strength, duration_ms) পরবর্তী টিক-এর জন্য একটি নির্দিষ্ট কারেন্ট পালস শিডিউল করে, step(n) সিমুলেশনের n সংখ্যক ফিক্সড টিক এগিয়ে নিয়ে যায় এবং একটি ইমিউটেবল ফাইনাল স্টেট রিটার্ন করে, এবং action() সময় এগিয়ে না নিয়েই ইন্ডিপেন্ডেন্ট মোটর ইনটেনসিটি রিড করে। save()/restore() মডেল, কনফিগ, ডায়নামিক্স এবং পেন্ডিং স্টিমুলাই containing একটি চেকপয়েন্ট লিখে এবং পুনরায় লোড করে; advance(duration_ms=...) একটি ডিউরেশন-ভিত্তিক ভেরিয়েন্ট প্রদান করে। টয় সেন্সরি চ্যানেলগুলো হলো food, looming_left, looming_right এবং touch; মোটর চ্যানেলগুলো হলো walk, turn_left, turn_right এবং jump, যার প্রতিটির মান 0 থেকে 1 এর মধ্যে এবং এগুলোকে প্রবাবিলিটি বা পরিমাপকৃত ভেলোসিটির পরিবর্তে হিউরিস্টিক কন্ট্রোল ভ্যালু হিসেবে বর্ণনা করা হয়েছে। গেম মুভমেন্ট এবং রেন্ডারিং হোস্ট অ্যাপ্লিকেশনের ওপর ছেড়ে দেওয়া হয়েছে। ব্যাকএন্ড: শুধুমাত্র cpu ইমপ্লিমেন্ট করা হয়েছে। wasm এবং cuda নামগুলো সংরক্ষিত ইন্টারফেস হিসেবে রয়েছে যা BackendUnavailableError রাইজ করে; প্রজেক্টটি উল্লেখ করেছে যে CUDA এবং WASM বর্তমানে ইমপ্লিমেন্ট করা রানটাইম নয়। মডেল: বান্ডেল করা অফলাইন ডেমোটি একটি হাতে তৈরি ১২-নিউরন সার্কিট। একটি আলাদা প্রায় ৩.৮ MB MaleCNS মডেল (male-cns-escape-v1) এতে ৩১৩টি রিয়েল সোর্স নিউরন এবং ২০,৬০৭টি অ্যানাটমিক্যাল এজ রয়েছে, যার LIF প্যারামিটারগুলো স্পষ্টভাবে ধরে নেওয়া হয়েছে এবং একটি মডেল কার্ডে ডকুমেন্ট করা হয়েছে। list_models() এবং model_info() এর মাধ্যমে একটি অফলাইন ক্যাটালগ দেখা সম্ভব; fetch_model() একটি এক্সপ্লিসিট নেটওয়ার্ক রিকোয়েস্ট করে, অ্যাসেটগুলো লোকালি ক্যাশ করে এবং ফাইল পাথ রিটার্ন করে। CLI সমতুল্য কমান্ডগুলোর মধ্যে রয়েছে "python -m flybrain models list|info|download"। বায়োলজিক্যাল মডেলগুলোর জন্য একটি এক্সপ্লিসিট download=True ফ্ল্যাগ প্রয়োজন। হুইল-এর সাথে কোনো বড় মডেল পাঠানো হয় না, এবং র (raw) Feather/NPY অ্যাসেটগুলো এখনও সরাসরি FlyBrain.load() এ পাস করা যায় না। রিডআউট এবং ইন্টারভেনশন: ব্যবহারকারীরা নিউরন পপুলেশন নির্বাচন করতে পারেন (যেমন cell_type এর মাধ্যমে), rates_hz এর মতো ফিল্ডগুলো পর্যবেক্ষণ করতে পারেন, গ্রুপের জন্য কাস্টম রিডআউট নাম বাইন্ড করতে পারেন, নির্দিষ্ট অ্যামপ্লিটিউড, ডিউরেশন এবং ইউনিটের কারেন্ট দিয়ে নির্বাচিত সেলগুলোকে ড্রাইভ করতে পারেন, এবং একটি ইন্টারভেনশন লেয়ারের মাধ্যমে গ্রুপগুলোকে সাইলেন্স করতে পারেন যা পরবর্তীতে রিলিজ করা সম্ভব। open_circuit উদাহরণ এবং MaleCNS রিপ্রোডাকশন গাইড এই ওয়ার্কফ্লোটি দেখায়। ডেমো কিট এবং ব্রাউজার টুলস: একটি Session লুপ রিপ্লেসযোগ্য ফিচার এনকোডার, রেট রিডআউট এবং এনভায়রনমেন্টের পাশাপাশি চেকপয়েন্ট এবং ভেরিফাইড ফিডব্যাক রিপ্লে সাপোর্ট করে। "python examples/demo_session.py dodge" এবং "... tones" রেকর্ডিং, চেকপয়েন্ট এবং স্ট্যান্ডঅ্যালোন প্লেব্যাক HTML জেনারেট করে, যেখানে tones টেমপ্লেটটি WAV এক্সপোর্টও করতে পারে। একটি ব্রাউজার সার্কিট ল্যাব লাইভ চলে, যা ভিজিটরদের টয় বা রিয়েল সেল স্টিমুলেট করতে, আউটপুট সাইলেন্স করতে, রেট ইনস্পেক্ট করতে এবং একটি এডিটেবল HTML ডেমো ডাউনলোড করতে দেয়; গ্যালারি ভিউয়ারগুলো রেকর্ড করা Python রান রিপ্লে করে। রিপোজিটরিতে একটি TypeScript CPU রানটাইম প্যাকেজ উপস্থিত রয়েছে। ইনস্টলেশন এবং বিল্ড: প্যাকেজটি PyPI-তে পাবলিশ করা হয়নি, তাই ইনস্টলেশন GitHub থেকে (pip install "flybrain-sdk @ git+https://github.com/freeman-1984-coder/flybrain-sdk.git") অথবা ক্লোন করে pip install -e . এর মাধ্যমে করা হয়, ঐচ্ছিকভাবে pytest-এর জন্য dev এক্সট্রা সহ। ডিস্ট্রিবিউশন আর্টিফ্যাক্টগুলো python -m build দিয়ে তৈরি করা হয় এবং twine check দিয়ে যাচাই করা হয়। স্কোপ এবং সততা নোট: লেখকরা এই SDK-টিকে এক্সপেরিমেন্টের জন্য একটি প্লাম্বিং হিসেবে বর্ণনা করেছেন, মাছির কোনো ভ্যালিডেটেড ইমুলেশন হিসেবে নয়: শুধুমাত্র ওয়্যারিং ফিজিওলজিক্যাল প্যারামিটার, রিসেপ্টর ইফেক্ট, সেন্সরি এনকোডিং, মোটর ডিকোডিং, শরীর বা লার্নিং নির্ধারণ করে না, এবং ডেমোটিতে কোনো প্লাস্টিসিটি, মরফোলজি, রিয়েলিস্টিক ভিশন বা ইনফারড বায়োলজিক্যাল বিহেভিয়ার নেই। ফুল-ব্রেইন রিয়েল-টাইম CPU পারফরম্যান্স এখনও প্রতিষ্ঠিত হয়নি। কোড এবং অরিজিনাল টয় ডেটা MIT-লাইসেন্সড; থার্ড-পার্টি ডেটাসেটগুলো তাদের নিজস্ব লাইসেন্স এবং সাইটেশন রিকোয়ারমেন্ট বজায় রাখে। প্রজেক্টটি জানিয়েছে যে এটি স্বাধীন এবং Janelia, FlyWire, Google বা ডেটাসেট লেখকদের সাথে কোনো সম্পর্ক নেই। কন্ট্রিবিউশন এরিয়াগুলোর মধ্যে লাইসেন্স এবং ইন্টিগ্রিটি মেটাডেটা সহ ভার্সনড মডেল সোর্স, FlyWire ইমপোর্টার, Godot/Unity অ্যাডাপ্টার এবং রেফারেন্স ডায়নামিক্সের একটি WASM পোর্ট অন্তর্ভুক্ত।