Contributing to SceneView
March 26, 2026 · View on GitHub
Thanks for your interest in contributing! This guide covers everything you need to get started.
Development environment setup
Prerequisites
- JDK 17 (for Android/KMP modules)
- Android Studio (latest stable recommended)
- Xcode 15+ (for SceneViewSwift / iOS work only)
Clone and open
git clone https://github.com/sceneview/sceneview.git
cd sceneview
Open the project in Android Studio. Gradle sync will pull all dependencies automatically.
Build
# Android libraries
./gradlew assembleDebug
# Android demo app
./gradlew :samples:android-demo:assembleDebug
For iOS (SceneViewSwift), open SceneViewSwift/Package.swift in Xcode and build from there.
Run tests
# All tests
./gradlew test
# KMP core tests only
./gradlew :sceneview-core:allTests
AI-assisted workflow (recommended)
SceneView ships with a full Claude Code setup so you can contribute with AI assistance from the first keystroke — no context-gathering needed.
Quick start
- Install Claude Code
- Clone the repo and open it:
claudeinside the project root - Run
/contribute— Claude walks you through the entire workflow
See CLAUDE.md for the full module map, architecture overview, threading rules, and AI contributor guidelines.
Available slash commands
| Command | What it does |
|---|---|
/contribute | Full guided workflow from understanding to PR |
/review | Checks threading rules, Compose API, Kotlin style, module boundaries |
/document | Generates/updates KDoc and llms.txt for changed APIs |
/test | Audits coverage and generates missing tests |
MCP server (optional)
If you use Claude Desktop or another MCP-compatible editor, add the SceneView MCP server for full API context in any chat:
{
"mcpServers": {
"sceneview": { "command": "npx", "args": ["-y", "sceneview-mcp"] }
}
}
Pull request guidelines
- One feature per PR. Keep changes focused and reviewable.
- Tests required. Add or update tests for any behavior change.
- Follow existing code style. Match the patterns in the module you are editing.
- Describe the why. PR descriptions should explain the motivation, not just list changed files.
- Keep commits clean. Squash fixups before requesting review.
Contributions to any part of the project are welcome — Android (sceneview/, arsceneview/), iOS (SceneViewSwift/), shared KMP core (sceneview-core/), samples, documentation, or the MCP server.
After your changes are merged, the Discord bot will award you the Contributor role.
Code style
- Kotlin: follow the official Kotlin style guide and existing Compose API conventions (composable functions,
remember*helpers, named parameters). The code style is stored in the repository and auto-configured by Android Studio. - Swift: follow the existing SceneViewSwift patterns (builder-style modifiers, RealityKit conventions).
- No wildcard imports. No unused imports.
- Keep changes minimal — you can fix obvious mistakes in formatting or documentation along the way.
Changes in Filament materials
Recompile Filament materials using the current Filament version if you modify them. Enable the Filament plugin and build.
Issues and discussions
- Bug reports: use the issue templates on GitHub Issues. Include platform, SceneView version, minimal reproduction steps, and relevant logs.
- Questions: open a Discussion instead of an issue.
- Feature requests: welcomed as issues or discussions.
- Chat: join the Discord to talk with the community and maintainers.