Decentralized Blender Rendering Platform on Starknet
GalaxyRend is a blockchain-powered platform that enables users to submit Blender rendering jobs and have them processed by a distributed network of workers. Built on Starknet, it provides a trustless and verifiable way to handle 3D rendering tasks with automatic payment distribution.
GalaxyRend connects job creators who need Blender rendering services with workers who provide computational resources. The platform uses smart contracts to escrow payments, verify job completion, and automatically distribute rewards.
- Decentralized Rendering: Submit .blend files for distributed processing
- IPFS Storage: Decentralized file storage for assets and results
- Smart Contract Escrow: Automatic payment handling via Starknet
- Worker Network: Distributed processing nodes
- Web Interface: Easy-to-use frontend for job management
- Verifiable Results: Cryptographically verified job completion
βββββββββββββββββββ
| Backend(Fastapi)| βββββββββββββββββββ βββββββββββββββββββ
β Frontend β β Smart Contract β β Worker β
β (Next.js) βββββΊβ (Starknet) βββββΊβ (Python) β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β β
β β β
βΌ βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β IPFS β β STRK Token β β Blender β
β (Storage) β β (Payment) β β (Rendering) β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
- Node.js v22.15.1+
- Python 3.12.3+
- Blender 4.0.2+
- Cairo/Scarb 2.11.4+
- IPFS node
- Docker
-
Clone the repository
git clone https://github.com/RichoKD/GalaxyRend.git cd GalaxyRend -
Install dependencies (Local) or you can use docker
# Frontend cd frontend npm install # Backend cd ../backend python3 -m venv venv pip install -r requirements.txt # Worker cd ../worker python3 -m venv venv pip install -r requirements.txt # Contracts cd ../contracts/job_registry scarb build
-
Configure environment
# configure snfoundry.toml with your sepolia account # Worker configuration is auto-generated by deployment script ./scripts/deploy_job_registry.sh sepolia <account> true # Or manually create worker/src/.env with: # STARKNET_RPC=https://api.cartridge.gg/x/starknet/sepolia # JOB_REGISTRY_ADDRESS=0x03103f3d37047b8bd0680c22a9b8d9502d5d1e34ab12259659dea2f6354ad7e8
-
Start services (Backend, DB, Worker node, Ipfs node)
cd infra docker compose up --build # Start frontend cd frontend npm run dev
-
Access the Web Interface
- Navigate to
http://localhost:3000 - Connect your Starknet wallet
- Navigate to
-
Submit a Rendering Job
- Upload your .blend file to IPFS
- Set reward amount in STRK tokens
- Specify deadline
- Submit job to the contract
-
Monitor Progress
- Track job status in the dashboard
- View completed renders
- Download results from IPFS
-
Setup Worker Environment
cd worker cp src/.env.example src/.env # Edit .env with your configuration
-
Start Worker
python3 src/main.py
-
Worker automatically:
- Checks for available jobs
- Downloads .blend files from IPFS
- Renders using Blender
- Uploads results to IPFS
- Submits completion to contract
cd contracts/job_registry
# Build contracts
scarb build
# Run tests
scarb test
# Deploy to testnet
./scripts/deploy_job_registry.sh sepolia <account>cd frontend
# Development server
npm run dev
# Build for production
npm run build
# Type checking
npm run lintcd worker
# Install development dependencies
pip install -r requirements.txt
# Make sure blender is in path
# Run with debug output
PYTHONPATH=src python3 src/main.pycd contracts/job_registry
scarb test create_job # Test specific function
scarb test # Run all tests# Test contract deployment
./scripts/deploy_job_registry.sh sepolia <account>
# Test worker functionality
cd worker
python3 src/main.pyGalaxyRend/
βββ contracts/ # Cairo smart contracts
β βββ job_registry/ # Main job registry contract
βββ frontend/ # Next.js web interface
βββ worker/ # Python worker nodes
βββ scripts/ # Deployment and utility scripts
βββ docs/ # Documentation
βββ infra/ # Infrastructure configuration
βββ shared/ # Shared utilities and types
- Job Registry:
0x03103f3d37047b8bd0680c22a9b8d9502d5d1e34ab12259659dea2f6354ad7e8 - STRK Token:
0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d
- RPC:
https://api.cartridge.gg/x/starknet/sepolia - Block Explorer: StarkScan
See TOOL_VERSIONS.md for complete version information.
- Starknet: Smart contract platform
- Cairo: Smart contract language
- IPFS: Decentralized storage
- Next.js: Frontend framework
- Blender: 3D rendering engine
- Architecture - System design and components
- Contracts - Smart contract documentation
- Frontend Architecture - UI/UX design
- Worker Documentation - Worker node setup
- Roadmap - Future development plans
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Cairo style guide for contracts
- Use TypeScript for frontend development
- Write tests for new functionality
- Update documentation for changes
- Contracts are tested with comprehensive unit tests
- Access controls implemented for sensitive functions
- Reentrancy protection where applicable
- File validation before processing
- Sandboxed rendering environment
- Resource limits to prevent abuse
-
Contract not found error
- Ensure you're using the correct network
- Verify contract address in configuration
-
IPFS connection failed
- Check IPFS daemon is running
- Verify IPFS API endpoint
-
Blender rendering failed
- Ensure Blender is installed and in PATH
- Check .blend file compatibility
-
Worker not finding jobs
- Verify contract address configuration
- Check network connectivity
- Check the docs directory
- Review TOOL_VERSIONS.md for compatibility
- Open an issue on GitHub
This project is licensed under the MIT License - see the LICENSE file for details.
- Starknet team for the robust L2 platform
- IPFS team for decentralized storage
- Blender Foundation for the open-source 3D suite
- Cairo community for development resources
GalaxyRend v0.2.0 - Democratizing 3D rendering through blockchain technology