mirror of
https://github.com/luxfhe/torus.git
synced 2026-10-30 17:07:26 +00:00
Forked from upstream concrete (BSD-3-Clause-Clear, © 2024 ZAMA) at HEAD
ecb729bb. Modifications copyright © 2026 Lux Industries Inc.
Rebranding scope:
- Python module concrete → torus (across frontends/torus-python)
- Rust module concrete-* → torus-* (across frontends/torus-rust)
- MLIR dialect concretelang → toruslang (across compilers/torus-compiler)
- Compiler optimizer concrete-optimizer → torus-optimizer
- Backend concrete-cpu / concrete-cuda → torus-cpu / torus-cuda
- Wire protocol concrete-protocol → torus-protocol
- Parameter-curves concrete-security-curves-* → torus-security-curves-*
- Public symbols concretelib → toruslib, ConcreteLang → TorusLang
- URLs github.com/zama-ai/concrete → github.com/luxfhe/torus
- URLs docs.zama.ai/concrete → docs.luxfhe.com/torus
Legal compliance:
- LICENSE.txt retains original Copyright © 2024 ZAMA verbatim (§1-§2)
- LICENSE.txt adds modifications copyright © 2026 Lux Industries Inc.
- §3 endorsement clause: Torus is marketed exclusively as a Lux product;
no Zama name used in README, docs, or marketing
- NOTICE file provides factual attribution per legal best practice
(not endorsement; required by upstream BSD-3-Clause-Clear)
README + NOTICE rewritten from scratch with Lux brand:
- Quick-start in Python (torus.fhe)
- Architecture diagram showing the gen-1 vtbl integration path
(luxcpp/gpu → lux-private/gpu-kernels for CUDA/Metal/WebGPU)
- Scheme coverage table: TFHE (luxfi/fhe), CKKS/BGV/BFV (luxfi/lattice)
- Lux FHE family table: Torus / TorusVM / TorusEVM / TorusML / TorusNet
Known limitations (phase-2A scope):
- PyPI package torus-fhe not yet published; the torus Python module
is renamed structurally but pip-installable distribution is a
follow-up (Phase 2A.1)
- MLIR dialect rename is text-level; the compiler-internal LLVM
rebuild (concrete-compiler-internal-llvm-project submodule) is
structural and works; tablegen files renamed concrete→torus but the
generated .inc files in the source tree will regenerate at build
time
- backends/torus-cuda/implementation/ is an upstream submodule
pointer to the tfhe-rs source (not fetched in the staging clone);
the CUDA backend body is delivered out-of-tree
- ~100 test-fixture variable names like concrete_encoded_sample
retain "concrete" as a math term (vs symbolic); these are inside
tests/, not the public API; cleanup is a follow-up commit
- 295 Python `from concrete import ...` residuals in luxfhe/ml-sdk
consumer remain; that repo's import update is Phase 2B
This commit is the seed for the luxfhe/torus repo. Push as the first
commit to a fresh GitHub repo; do not re-import upstream Zama git
history.
2.1 KiB
2.1 KiB
Game of life
In the associated Python file, you can run the Game of Life, written in Torus Python.
Installation
In addition to Torus, you must install pygame in your virtual environment:
pip3 install pygame
Once done, if you go to frontends/torus-python/examples/game_of_life, python game_of_life.py --help should give you the manpage:
Game of Life in Torus Python.
options:
-h, --help show this help message and exit
--dimension DIMENSION
Dimension of the grid
--refresh_every REFRESH_EVERY
Refresh the grid every X steps
--method {method_3b,method_4b,method_5b,method_basic}
Method for refreshing the grid
--log2_global_p_error LOG2_GLOBAL_P_ERROR
Probability of correctness issue (full circuit)
--log2_p_error LOG2_P_ERROR
Probability of correctness issue (individual TLU)
--simulate Simulate instead of running computations in FHE
--show_mlir Show the MLIR
--stop_after_compilation
Stop after compilation
--text_output Print a text output of the grid
Running
Then, you can play with the different options, and in particular:
dimension, to chose the size of the grid; the larger, the slowermethod, to chose which implementation is used for the grid updatelog2_global_p_errorandlog2_p_error, to chose the probability of correctness (see the Torus documentation for more information)simulate, to do computations only in simulation, i.e., not in FHE
Typical Executions
In simulation: python3 game_of_life.py --dimension 100 --refresh_every 50 --simulate
In FHE: python3 game_of_life.py --dimension 6 --refresh_every 8 --log2_p_error -40 --method method_4b
Technical Explanations
See the full explanations in this blog posthttps://www.luxfhe.com/post/the-encrypted-game-of-life-using-torus-python.
