Installation Guide
Install LOOM for your preferred programming language and platform.
System Requirements
Minimum Requirements
- CPU: Any modern x86_64 or ARM64 processor
- RAM: 2GB minimum, 8GB recommended
- OS: Windows, macOS, Linux, Android, iOS
GPU Requirements (Optional)
- GPU: WebGPU-compatible GPU (Vulkan, Metal, or D3D12 support)
- Drivers: Up-to-date graphics drivers
- Browser: Chrome/Edge 113+, Firefox 113+, or Safari 16.4+ for WASM
CPU Fallback
LOOM automatically falls back to CPU if GPU is not available. All
features work on CPU, though GPU provides significant performance
improvements for larger models.
Go (Native)
Install LOOM for native Go development with full GPU acceleration support.
Requirements
- Go 1.24 or higher
- C compiler (gcc, clang, or MSVC)
Installation
bash
go get github.com/openfluke/loom/nn
Verify Installation
bash
cd $GOPATH/src/github.com/openfluke/loom/examples
go run simple_dense.go
Python (welvet)
Install the welvet package for Python bindings via C-ABI.
Requirements
- Python 3.7 or higher
- pip package manager
Installation
bash
pip install welvet
Verify Installation
python
import welvet
print(f"welvet version: {welvet.__version__}")
PyPI Package
The welvet package includes pre-compiled native libraries for Linux,
macOS, and Windows on both x86_64 and ARM64 architectures.
View on PyPI
JavaScript/TypeScript (WASM)
Install the WebAssembly module for browser and Node.js deployment.
Requirements
- Node.js 18+ or modern browser with WebAssembly support
- npm or yarn package manager
Installation
bash
npm install @openfluke/welvet
# or
yarn add @openfluke/welvet
Browser Usage
html
<script src="wasm_exec.js"></script>
<script>
const go = new Go();
WebAssembly.instantiateStreaming(
fetch("loom.wasm"),
go.importObject
).then((result) => {
go.run(result.instance);
});
</script>
npm Package
The package includes a 5.4MB WASM binary with zero dependencies.
View on npm
C# / .NET (Welvet)
Install the Welvet NuGet package for .NET applications.
Requirements
- .NET 9.0 or higher
- NuGet package manager
Installation
bash
dotnet add package Welvet
Usage
csharp
using Welvet;
var network = Network.Create(
inputSize: 4,
gridRows: 1,
gridCols: 1,
layersPerCell: 2,
useGpu: true
);
NuGet Package
Includes native libraries for Windows, Linux, and macOS.
View on NuGet
C/C++/Rust (C-ABI)
Build the shared library for C Foreign Function Interface.
Requirements
- Go 1.24 or higher
- C compiler (gcc, clang, or MSVC)
Build from Source
bash
git clone https://github.com/openfluke/loom
cd loom/cabi
./build.sh
# Multi-platform builds
./build_all.sh linux arm64 # Linux ARM64
./build_all.sh macos universal # macOS Universal
./build_all.sh windows x86_64 # Windows 64-bit
./build_all.sh android arm64 # Android ARM64
./build_all.sh ios xcframework # iOS XCFramework
Supported Platforms
- Linux: x86_64, arm64, armv7, x86
- macOS: x86_64, arm64, universal
- Windows: x86_64, x86, arm64
- Android: arm64, armv7, x86_64, x86
- iOS: arm64, simulators, xcframework
Build Time
Building the C-ABI library includes the full LOOM framework and CGO
runtime, resulting in a ~17MB shared library. Build time can take
2-5 minutes depending on your system.
Docker Installation
Use Docker for isolated development environments.
bash
# Pull the official image
docker pull openfluke/loom:latest
# Run interactive shell
docker run -it openfluke/loom:latest /bin/bash
# Run example
docker run openfluke/loom:latest go run examples/simple_dense.go
Troubleshooting
GPU Not Detected
If GPU acceleration is not working:
- Verify WebGPU support: Visit webgpureport.org
- Update graphics drivers to the latest version
- Check browser compatibility (Chrome 113+, Firefox 113+, Safari 16.4+)
- LOOM will automatically fall back to CPU
Build Errors (Go)
Common solutions:
- Ensure Go 1.24+ is installed:
go version - Update Go modules:
go mod tidy - Clear module cache:
go clean -modcache
Python Import Errors
If welvet fails to import:
-
Verify Python version:
python --version(need 3.7+) -
Reinstall package:
pip uninstall welvet && pip install welvet - Check platform compatibility (x86_64 or ARM64)
Need Help?
If you encounter issues, check the
GitHub issues
or open a new issue with your error details.
Next Steps
Now that LOOM is installed, continue with:
- Quick Start Guide - Build your first network
- Examples - Browse code samples
- Layer Types - Learn about all 5 layer types