Skip to content

Introduction

FBTK (Forblaze Toolkit) is a toolkit designed to dramatically accelerate the preparation of molecular simulations for polymers and complex mixed systems. The core logic is implemented in Rust, and it seamlessly integrates with existing ecosystems such as ASE, RDKit, OpenFF, and LAMMPS through a Python interface.

  • High Performance: Multi-threaded execution powered by Rust. Packing systems with tens of thousands of atoms completes in seconds.
  • Zero-dependency Engine: A standalone, high-speed Rust engine becomes immediately available with a simple pip install fbtk.
  • Zero Configuration: No tedious environment setup, path configurations, or version conflicts with other libraries (e.g., RDKit).
  • Built-in 3D Generation: 3D coordinate generation from SMILES is fully self-contained using an internal VSEPR + UFF engine, requiring no external tools.
  • Smart Relaxation: Rapidly resolve atomic overlaps before MD production. The FIRE algorithm reliably prevents system collapses.
  • Charge Assignment: Automatic assignment of Gasteiger partial charges. Physical information is immediately available for simulation upon SMILES-based construction or polymer generation.
  • Polymer Builder: Generate polymers with controlled degree of polymerization and tacticity. Automatic end-capping (hydrogen capping) ensures physically saturated structures.
  • Ecosystem Ready: Native support for direct analysis and conversion (to_ase()) of ASE Atoms objects.

FBTK adopts unit systems commonly used in MD simulations:

  • Distance: Å (Angstrom)
  • Mass: amu (Atomic mass unit)
  • Density: g/cm³
  • Energy: kcal/mol
  • Force: kcal/mol/Å
  • Time: fs (e.g., for dt in MSD calculations)

FBTK leverages the Rust parallel processing library Rayon to achieve high-speed multi-threaded computation. Heavy operations such as structural relaxation, RDF/MSD calculations, and neighbor list generation are automatically parallelized.

By default, FBTK uses 4 threads to avoid interfering with other processes.

To adjust the number of threads based on your resources, set the RAYON_NUM_THREADS environment variable before running Python:

Terminal window
# To use 8 threads
export RAYON_NUM_THREADS=8
python your_script.py

To use FBTK within a Python workflow:

Terminal window
# New installation
pip install fbtk
# Update to latest version (recommended)
pip install -U fbtk

For command-line use without Python, standalone static binaries are available for download from GitHub Releases. See Command Line Interface (CLI) for details.

  • Python 3.8+ (Supports Manylinux / macOS / Windows)

FBTK is distributed as a self-contained binary module and has no mandatory additional libraries. Since it manages its own internal logic, it will not force version changes on existing packages (like PyTorch or RDKit) or disrupt your current dependency tree.

While not required, FBTK works effectively alongside the following tools for advanced workflows:

  • ASE: Recommended for data I/O and visualization.
  • RDKit: Useful for importing topologies from existing RDKit objects.
  • OpenFF: Used for applying high-precision force fields and generating MD simulation files.