Skip to content

Introduction

FBTK (Forblaze Toolkit) is a high-performance toolkit designed to accelerate the preparation and analysis of complex molecular systems, particularly polymers and multicomponent mixtures.

The core engine is implemented in Rust for maximum performance, while providing a seamless Python interface that integrates with established ecosystems like ASE, RDKit, and LAMMPS.

  • High Performance: Multithreaded execution powered by Rust. Quickly pack systems with tens of thousands of atoms.
  • Zero-dependency Engine: Simply run pip install fbtk to get a self-contained, high-speed Rust engine immediately.
  • Zero Configuration: No complex environment setup, path configurations, or version conflicts with other libraries like RDKit.
  • Built-in 3D Generation: 3D coordinate generation from SMILES is handled by the internal VSEPR + UFF engine, eliminating the need for external tools.
  • Smart Relaxation: Quickly resolve atomic overlaps before MD production. The FIRE algorithm ensures stable structural optimization without system collapse.
  • Ecosystem Ready: Direct support for analyzing ASE Atoms objects and seamless conversion (to_ase()).

FBTK adopts unit systems commonly used in molecular dynamics:

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

FBTK utilizes the Rayon library for data parallelism. Computationally intensive tasks such as structure relaxation, RDF/MSD calculations, and distance matrix acquisition are automatically parallelized.

By default, FBTK is configured to use 4 threads to avoid overwhelming the CPU in shared or interactive environments (like Jupyter).

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

Terminal window
# Example: Use 8 threads
export RAYON_NUM_THREADS=8
python your_script.py

To use FBTK within your Python workflow:

Terminal window
pip install fbtk

For users who prefer working directly from the shell without Python, 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; no additional libraries are strictly required for its core functionality.

While not required, these tools can be used in conjunction with FBTK for advanced workflows:

  • ASE: Recommended for I/O and visualization.
  • RDKit: Useful for advanced topology manipulation via RDKit objects.