Dart/Flutter bindings for the bclibc ballistics engine — a high-performance 3-DOF + spin drift ballistic solver with RK4/Euler integration.
This is a monorepo with two published packages:
dart/—bclibc: pure Dart, no Flutter dependency. FFI bindings, calculator/unit/conditions domain types. Works in any Dart project — CLI, server, or Flutter.flutter/—bclibc_flutter: Flutter plugin wrapper. Bundles the native library for Android/iOS/Linux/macOS/Windows and WebAssembly for Flutter Web, plusAsyncCalculator(needs a real web implementation, only available inside a Flutter app).
If you're building a plain Dart application, start with
dart/README.md. If you're building a Flutter app, start
with flutter/README.md — it re-exports everything
from bclibc plus the Flutter-specific pieces.
git clone --recurse-submodules https://github.com/ballistics-lab/dart-bclibc.git
cd dart-bclibc
make build # builds dart/'s native library via CMake
make test # runs dart/'s test suiteThe C++ engine (bclibc) is
vendored as a git submodule, checked out separately under both dart/bclibc
and flutter/bclibc (each published package needs to be self-contained —
see make verify-bclibc, which checks the two copies — plus flutter/'s
CMake BCLIBC_VERSION, the prebuilt wasm asset and the CHANGELOGs — all pin
the same bclibc commit; make install-hooks runs it as a pre-commit hook).
Copyright (C) 2026 Yaroshenko Dmytro (o-murphy)
This library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License v3.0 as published by the Free Software Foundation.
See LICENSE for the full text.
Note
bclibc (the ballistic solver engine) is licensed separately under the GNU Lesser General Public License v3.0. See dart/bclibc/LICENSE.
Warning
Risk notice. This package performs approximate simulations of complex physical processes. Calculation results must not be considered as completely or reliably reflecting actual projectile behaviour. Results may be used for educational purposes only and must not be relied upon in any context where an incorrect calculation could cause financial harm or put a human life at risk.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.