Thanks for your interest in contributing! This guide covers everything you need to get started.
- JDK 17 (for Android/KMP modules)
- Android Studio (latest stable recommended)
- Xcode 15+ (for SceneViewSwift / iOS work only)
git clone https://github.com/sceneview/sceneview.git
cd sceneviewOpen the project in Android Studio. Gradle sync will pull all dependencies automatically.
# Android libraries
./gradlew assembleDebug
# Android demo app
./gradlew :samples:android-demo:assembleDebugFor iOS (SceneViewSwift), open SceneViewSwift/Package.swift in Xcode and build from there.
# All tests
./gradlew test
# KMP core tests only
./gradlew :sceneview-core:allTestsSceneView ships with a full Claude Code setup so you can contribute with AI assistance from the first keystroke — no context-gathering needed.
- 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.
| 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 |
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"] }
}
}- 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.
- 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.
Recompile Filament materials using the current Filament version if you modify them. Enable the Filament plugin and build.
- 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.