Supported Formats
Phichain
Native format with advanced features and full toolchain support
Official
Official Phigros format for game compatibility
RPE
Re:PhiEdit format with enhanced easing support
Primitive
Internal intermediate representation
Format Comparison
| Feature | Phichain | Official | RPE | Primitive |
|---|---|---|---|---|
| File Extension | .json | .json | .json | .json |
| Easing Support | Full | Linear only | Full | Full |
| BPM Changes | Multiple | Single per line | Multiple | Multiple |
| Child Lines | Yes | No | Partial | No |
| Curve Notes | Yes | No | No | No |
| Game Compatible | No | Yes | Via conversion | No |
| Editor Support | Phichain Editor | Official | Re:PhiEdit | N/A |
Conversion Flow
All format conversions in Phichain go through the Primitive format as an intermediate representation: This architecture ensures:- Consistent conversion logic
- Easy addition of new formats
- Preservation of common features
- Predictable data transformations
When to Use Each Format
Phichain Format
Phichain Format
Use when:
- Creating charts in Phichain Editor
- You need advanced features like child lines or curve notes
- Working with complex BPM changes
- Collaborating with other Phichain users
- Full feature set
- Best editor integration
- Human-readable structure
- Version migration support
Official Format
Official Format
Use when:
- Exporting for gameplay in official Phigros
- Sharing charts with players
- Testing in the actual game
- You need maximum compatibility
- Direct game compatibility
- Widely supported
- Well-documented structure
- Battle-tested format
- Linear easing only (non-linear gets approximated)
- Single BPM per line
- No advanced features
RPE Format
RPE Format
Use when:
- Importing charts from Re:PhiEdit
- You need easing function support
- Working with event layers
- Collaborating with RPE users
- Rich easing support
- Event layer system
- Popular in community
- Re:PhiEdit compatible
Primitive Format
Primitive Format
Use when:
- Debugging conversion issues
- Writing custom tools
- Understanding internal structure
- Implementing new format support
- Simple, normalized structure
- Easy to parse and generate
- Core feature set only
- Format-agnostic
Conversion Examples
- CLI
- Rust API
Compatibility Notes
Easing ApproximationWhen converting non-linear easing to Official format, curves are approximated by breaking them into multiple linear segments (1/32 beat intervals). This maintains visual accuracy while staying compatible.
Version Migration
Phichain format supports automatic migration between versions:Next Steps
Phichain Format Spec
Deep dive into the native format structure
Conversion Tool
Learn format conversion workflows