High-performance molecular simulation toolkit with Python bindings
Project description
FBTK: Forblaze Toolkit
High-performance molecular analysis and building tools powered by Rust. Designed as a "Transparent Accelerator" for Python (ASE/RDKit) workflows with a smart, object-oriented interface.
Features
- 🚀 High Performance: Core logic written in Rust with parallel processing (Rayon).
- 🏗️ Intelligent Builder:
- Optimized Initial Packing: Grid-based placement with uniform density.
- Polymer Synthesis: Automatic chain generation with leaving atom support.
- Built-in 3D Generation: 3D coordinate generation from SMILES handled by internal VSEPR + UFF engine.
- Fast Structural Relaxation: O(N) Cell-list optimization with the FIRE algorithm.
- 🔍 Advanced Analysis:
- Parallel RDF, MSD, COM (Center of Mass), Angles, Dihedrals.
- O(N) Neighbor List search.
- 📏 Robust Physics: Correct handling of PBC, Triclinic cells, and Minimum Image Convention (MIC).
Installation
Python Library (Recommended)
pip install fbtk
Requirements: Python 3.8+ and NumPy.
Standalone CLI (No Python Required)
For non-Python environments, pre-compiled standalone binaries for Linux, Windows, and macOS are available on the GitHub Releases page.
- Download the archive for your platform (e.g.,
fbtk-cli-v0.9.1-linux-x86_64.tar.gz). - Requirements: None. These are self-contained binaries.
Usage
1. System Building
Build and relax a complex molecular system with just a few lines of code.
import fbtk
# 1. Setup Builder
builder = fbtk.Builder(density=0.8)
builder.add_molecule_smiles("ethanol", count=50, smiles="CCO")
# 2. Build and Relax
system = builder.build()
system.relax(steps=500)
# 3. Export to ASE
atoms = system.to_ase()
atoms.write("system.xyz")
2. RDF Analysis
Fast analysis of large trajectories using smart selection queries.
from ase.io import read
import fbtk
# Load trajectory (ASE list of Atoms)
traj = read('simulation.lammpstrj', index=':')
# Compute RDF using a simple query string
r, g_r = fbtk.compute_rdf(traj, query="O-H", r_max=10.0)
3. Command Line Interface (CLI)
FBTK provides standalone CLI tools for batch processing.
fbtk-build: Build from Recipe
# Run building and relaxation from a YAML recipe
fbtk-build --recipe recipe.yaml --relax --output system.mol2
Example recipe.yaml:
system:
density: 0.8
cell_shape: [20.0, 20.0, 20.0]
components:
- name: "ethanol"
role: "molecule"
input:
smiles: "CCO"
count: 50
fbtk-analyze: Analyze Trajectory
# Compute RDF for a LAMMPS trajectory
fbtk-analyze rdf --input traj.lammpstrj --query "type 1 with type 2"
Selection Query Syntax
FBTK supports intuitive strings to select atoms for analysis:
- Element:
"O","H","element C" - Pairs (RDF):
"O-H","C - C" - Index Range:
"index 0:100"(start:end) - Residue:
"resname STY"
Author
Forblaze Project
Website: https://forblaze-works.com/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fbtk-0.9.2.tar.gz.
File metadata
- Download URL: fbtk-0.9.2.tar.gz
- Upload date:
- Size: 6.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb6bba642db2b9d2dd4c0b3967d8ebcbdd57a57e3fed89b6f40bd4aa7f82cf06
|
|
| MD5 |
f1ed0ed5138f2535459ba39778403d5b
|
|
| BLAKE2b-256 |
c0e00fc1d40f7cbbde217822068af1d6c2f3df317d8e90795ed8e21cb47389e6
|
File details
Details for the file fbtk-0.9.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: fbtk-0.9.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: PyPy, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1dac31973f62663912c6b13bf54d86b244587c85401d9685a14bd94b77143662
|
|
| MD5 |
60ecbe8a001ea2aab50738c753e69b0d
|
|
| BLAKE2b-256 |
f3fbc683fbd91dc1d2ae443fbe3eb67953229ef9d164131f6a65a8e842b8ac47
|
File details
Details for the file fbtk-0.9.2-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl.
File metadata
- Download URL: fbtk-0.9.2-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
- Upload date:
- Size: 1.1 MB
- Tags: PyPy, manylinux: glibc 2.17+ s390x
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc52c8b4484358f004b4c5c8c37cd49a9f5afa671682d6ea32fd7abd7618d3c4
|
|
| MD5 |
51d0765edf1da6f06c2b76de75b1ab7d
|
|
| BLAKE2b-256 |
c97970ad889cbff230f040817be7153a5804204d1e56666641bf1fc8ff854f74
|
File details
Details for the file fbtk-0.9.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: fbtk-0.9.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.1 MB
- Tags: PyPy, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
476a5d0f5c38e78f1953f113e6472b60faf33b7434cc09511ba4941693b27e13
|
|
| MD5 |
f4cee09ed86acc0a7938b0db95cbd9cb
|
|
| BLAKE2b-256 |
17c5d70a8b7f3b4645f4187cf576a3993a1d879dfacb53f31289eaa81ba87e75
|
File details
Details for the file fbtk-0.9.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: fbtk-0.9.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.1 MB
- Tags: PyPy, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a000ca1b965daddf80bd79c62355fa7dc4d0b46ea740e9512392ba3074749513
|
|
| MD5 |
59d4db14320cbab88ab42185f76adf8d
|
|
| BLAKE2b-256 |
0cef29cbfbae405eb10f34c033d640a51a5ed582239f3322bf04ca7256510b19
|
File details
Details for the file fbtk-0.9.2-cp38-abi3-win_arm64.whl.
File metadata
- Download URL: fbtk-0.9.2-cp38-abi3-win_arm64.whl
- Upload date:
- Size: 844.6 kB
- Tags: CPython 3.8+, Windows ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b00f4030ec4d72e6c5a4faac4bf70434c82f7c9c15f3ab9d4b76cd273639477f
|
|
| MD5 |
8a3477a53cc10156041433f4b567dce0
|
|
| BLAKE2b-256 |
c8ed2ece7e4b43099e2dbc316d652d56e54a66bfec9f0b48ed74c40e8dc8cc3d
|
File details
Details for the file fbtk-0.9.2-cp38-abi3-win_amd64.whl.
File metadata
- Download URL: fbtk-0.9.2-cp38-abi3-win_amd64.whl
- Upload date:
- Size: 881.5 kB
- Tags: CPython 3.8+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2e40471bd77f4de05fe11d7ae198676309df6067d59bc958a33fe033417db7d
|
|
| MD5 |
ddb2b8620e36db58d5ec15de21d5cf86
|
|
| BLAKE2b-256 |
8d238e96ca4f21168c2b091551156bc7036158ee28e027d330dbc87f7bf95d56
|
File details
Details for the file fbtk-0.9.2-cp38-abi3-win32.whl.
File metadata
- Download URL: fbtk-0.9.2-cp38-abi3-win32.whl
- Upload date:
- Size: 814.6 kB
- Tags: CPython 3.8+, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ed9b7b86ab181a4929abe8c9166a241ea48eb3e38fcdc40c17339e2061491d0
|
|
| MD5 |
d73de97c200462d4d8e73c88409a0b44
|
|
| BLAKE2b-256 |
2bf5156b3666a1ba0fb50b2dc502decf95b21dd98a46219885a2ec6f4805866d
|
File details
Details for the file fbtk-0.9.2-cp38-abi3-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: fbtk-0.9.2-cp38-abi3-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.8+, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a80468e6b257a5d643449ba56fabc0f60c2714312c92541f4ab6919a42a0870
|
|
| MD5 |
0e369cb6801b68a25e590433c5fd61fc
|
|
| BLAKE2b-256 |
edef02459ce768abffc38fece1c78ba71df299d057454a7898d47d667ba612fc
|
File details
Details for the file fbtk-0.9.2-cp38-abi3-musllinux_1_2_armv7l.whl.
File metadata
- Download URL: fbtk-0.9.2-cp38-abi3-musllinux_1_2_armv7l.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.8+, musllinux: musl 1.2+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
780c106bc4c6543e2d361349f19c5f8c3584bddb1a0e846e5c154c14d36fcd70
|
|
| MD5 |
48c66295c1e1ab6ae37d1e7097f73f93
|
|
| BLAKE2b-256 |
e03896f21c8327f4becf6bdcab69fb0264d5cefa24d5eef58688e18f199a23fc
|
File details
Details for the file fbtk-0.9.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: fbtk-0.9.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.8+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67046c0d5e67230b991ce890d429b2414e1868b96eacad50119b88a1e2627a9d
|
|
| MD5 |
fdceba12dd079575013d53d2e284a722
|
|
| BLAKE2b-256 |
d21e4afc57d7f9f5cd1ed05bcb32834886ec997aac03c6dc1a60be93cfcc7ec6
|
File details
Details for the file fbtk-0.9.2-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.
File metadata
- Download URL: fbtk-0.9.2-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.8+, manylinux: glibc 2.17+ ppc64le
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68b9c224560cce9929114addee5630908b8d3ad09bb8c5454abbb8b2926156a5
|
|
| MD5 |
7c6fca0538cc9639ba1bd330c6708286
|
|
| BLAKE2b-256 |
91d8117a5130719cd1b42a460afdd5d793911205f93ee4f0e30b8f73536e3f35
|
File details
Details for the file fbtk-0.9.2-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.
File metadata
- Download URL: fbtk-0.9.2-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.8+, manylinux: glibc 2.17+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9bb6c344aa7bd1ecf6f80690cc1ac42ca14113d96901a0403a6db231e584de9f
|
|
| MD5 |
45d5d81d7f8efb443b11105ab27fcd71
|
|
| BLAKE2b-256 |
aaa291fa5a7012c21c780d0b07b9fc3ab6a4b698f6e9e1d6495c0e18abc1149f
|
File details
Details for the file fbtk-0.9.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: fbtk-0.9.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.8+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4099f7f9f3067f7ff4baf4aada268f7b30f0456d49e22b052e96f187e6ab7c64
|
|
| MD5 |
c706739006ce9d11fb5672c19571e1f8
|
|
| BLAKE2b-256 |
a6eff65f195395c1ae6e1288705ba6a1a9ebc548908066a3a33897bcad48cb10
|
File details
Details for the file fbtk-0.9.2-cp38-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: fbtk-0.9.2-cp38-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 994.8 kB
- Tags: CPython 3.8+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f259045ebe788077fd966e055d255f870be25f286c36efd68f238113c4e3beb5
|
|
| MD5 |
ad0d283b712371188bf16c2eec927569
|
|
| BLAKE2b-256 |
7e171d8202d745bbab5823734b9791361e142c3912945305fbb7fbc1f297a95d
|
File details
Details for the file fbtk-0.9.2-cp38-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: fbtk-0.9.2-cp38-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.8+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
047997eebd3bb99d96590b519d4743eba0ba9e06b2670966261a9bbb76316e9b
|
|
| MD5 |
c6e7a7e0e0bb952b44035e8be2fca79b
|
|
| BLAKE2b-256 |
eef43739b23b3812683041d103cee2cb22b38c1ccb2c3fa3e16d2016ba698e89
|