Contributing to RenderScope
RenderScope is open source and community-driven. Whether you want to add a renderer, submit benchmarks, fix a bug, or improve the code — here's how to get started.
Add a Renderer
Submit metadata for a rendering engine we haven't cataloged yet.
Submit Benchmarks
Run standardized benchmarks on your hardware and contribute results.
Report an Issue
Found incorrect data, a broken page, or a bug? Let us know.
Contribute Code
Fix bugs, add features, or improve the web app, Python CLI, or npm package.
Adding a New Renderer
Each renderer in the RenderScope catalog is a single JSON file in /data/renderers/. Contributing a new renderer means copying a template, filling in the fields, validating, and submitting a pull request. No code changes needed.
Fork & Clone
Fork the RenderScope repository on GitHub, then clone your fork locally.
git clone https://github.com/YOUR-USERNAME/renderscope.git
cd renderscopeCopy the Template
Copy _template.json and rename it to your renderer's slug (lowercase, hyphens).
cp data/renderers/_template.json data/renderers/your-renderer.jsonFill in the Data
Open the file and fill in the fields. Here's a condensed example showing the most important fields:
{
"id": "your-renderer",
"name": "Your Renderer",
"version": "1.0.0",
"description": "A one-line description of what this renderer does.",
"technique": ["path_tracing"],
"language": "C++",
"license": "MIT",
"platforms": ["linux", "macos", "windows"],
"repository": "https://github.com/org/repo",
"homepage": "https://example.com",
"features": {
"global_illumination": true,
"gpu_acceleration": false,
"python_api": true
},
"strengths": [
"Physically accurate spectral rendering",
"Well-documented codebase"
],
"limitations": [
"No GPU acceleration",
"Limited scene format support"
],
"best_for": "Research and educational use"
}See the Data Schema documentation for the complete field reference. Fields like strengths and limitations are where the most valuable editorial content goes — be honest and specific.
Validate
Run the validation script to check your JSON against the schema. CI will also run this on your pull request.
python scripts/validate_data.pySubmit a Pull Request
Create a branch, commit your file, push, and open a PR on GitHub. The PR template will guide you through the checklist.
git checkout -b add-renderer/your-renderer
git add data/renderers/your-renderer.json
git commit -m "data: add Your Renderer profile"
git push origin add-renderer/your-rendererNot comfortable with Git? You can also open a GitHub Issue using our “New Renderer Request” template, and a maintainer will create the JSON file from your information.
Submitting Benchmark Results
Benchmark results let the community compare renderers on standardized scenes under controlled conditions. Results are more valuable when they come from diverse hardware — your contribution matters.
Prerequisites
- A renderer installed and working on your system
- Python 3.10+ installed
- The RenderScope CLI:
pip install renderscope
Install the CLI
pip install renderscopeDownload Benchmark Scenes
renderscope download-scenesRun Benchmarks
# Single scene + selected renderers
renderscope benchmark --scene cornell-box --renderer pbrt mitsuba
# Full suite
renderscope benchmark --scene all --renderer allReview Results
renderscope report results.json --format html --output report.htmlSubmit
Copy the results JSON into data/benchmarks/ and submit a pull request, or open a GitHub Issue with the “Benchmark Submission” template and attach the file.
See the Methodology page for details on how to ensure fair, reproducible results. Close other applications, let the system reach thermal equilibrium, and run multiple iterations.
Reporting Issues
Data corrections — Found wrong information about a renderer? Open a GitHub Issue with the “Bug Report” template, or submit a PR with the corrected JSON.
Website bugs — Broken page, missing image, rendering glitch? Open a GitHub Issue with the “Bug Report” template. Include your browser and OS.
Feature requests — Have an idea for a new feature? Open a GitHub Issue with the “Feature Request” template.
Contributing Code
Development Setup
Web App
cd web
npm install
npm run dev # Starts at http://localhost:3000Python Package
cd python
pip install -e ".[dev]"
pytest # Run testsnpm Component Library
cd packages/renderscope-ui
npm install
npm run build # Build the library
npm run storybook # Component playgroundCode Style
| Package | Linter | Formatter | Type Checker |
|---|---|---|---|
| Web / npm | ESLint | Prettier | TypeScript strict mode |
| Python | Ruff | Ruff | mypy (strict) |
Testing Requirements
- Web: Vitest for unit tests, Playwright for E2E
- Python: pytest with coverage
- All PRs must pass CI before merging
Pull Request Process
Create a feature branch from main
git checkout -b feature/my-changeMake your changes and write tests
Keep changes focused. One feature or fix per PR is ideal.
Run linting and tests locally
# Web
npm run lint && npm run type-check
# Python
ruff check . && mypy . && pytestPush and open a PR
The PR template will guide you through the checklist. A maintainer will review within a few days.
Address feedback and merge
Once approved and CI passes, your contribution will be merged.
Looking for something to work on? Check our issues labeled good first issue on GitHub.