为 @playcanvas/splat-transform 命令行工具打造的美观、易用的桌面图形界面。这个基于 Electron 的应用程序为 3D 高斯点云文件的转换和变换提供了可视化操作界面。
✨ Comprehensive GUI - Full access to all splat-transform CLI options through an intuitive interface
🔄 Format Conversion - Support for multiple formats:
- PLY (standard and compressed)
- SOG (bundled and unbundled)
- SPLAT / KSPLAT
- CSV
- HTML Viewer
🎯 Transformations
- Translate by (x, y, z)
- Rotate by Euler angles
- Uniform scaling
🎨 Advanced Filters
- Spherical harmonic filtering
- NaN/Inf value removal
- Bounding box filtering
- Spherical region filtering
- Custom value-based filtering
📋 Live Logs - Real-time conversion progress and output
🔍 Auto-Detection - Automatically detects and installs @playcanvas/splat-transform if missing
⚡ User-Friendly
- File browser for easy selection
- Overwrite confirmation dialogs
- Clear error messages
- Responsive design
- Node.js (v16 or higher)
- npm (comes with Node.js)
-
Clone or download this repository
git clone <repository-url> cd SplatTransform_GUI
-
Install dependencies
npm install
-
Run the application
npm start
-
Launch the application
npm start
-
Check dependencies
- The app will automatically check if
@playcanvas/splat-transformis installed - If not installed, click the "Install" button
- The app will automatically check if
-
Select input file
- Click "Browse" next to Input File
- Select your point cloud file (.ply, .splat, .ksplat, .sog, etc.)
-
Choose output format
- Select the desired output format from the dropdown
-
Configure options (optional)
- Set transformations (translate, rotate, scale)
- Apply filters
- Adjust advanced settings
-
Convert
- Click the "Convert" button
- Watch the live log for progress
- Output file will be saved in the same directory as input
.ply- Standard PLY.compressed.ply- Compressed PLY (auto-detected).splat- SPLAT format.ksplat- KSPLAT format.sog- SOG bundled formatmeta.json- SOG unbundled format
.ply- Standard PLY.compressed.ply- Compressed PLY.sog- SOG bundled formatmeta.json- SOG unbundled (requires directory selection).html- Standalone HTML viewer.csv- CSV format.splat- SPLAT format.ksplat- KSPLAT format
Move the point cloud by (x, y, z) coordinates
Example: x=1.5, y=0, z=-2.0
Rotate by Euler angles in degrees
Example: x=45, y=90, z=0
Uniformly scale the point cloud
Example: 2.0 (doubles the size)
Remove spherical harmonic bands greater than the selected value (0-3)
Remove Gaussians with invalid (NaN or Inf) values
Keep only Gaussians inside a box defined by min/max corners
Example: minX=-5, minY=-5, minZ=-5, maxX=5, maxY=5, maxZ=5
Keep only Gaussians inside a sphere
Example: centerX=0, centerY=0, centerZ=0, radius=10
Filter based on property values
Example: Property="opacity", Comparison=">=", Value=0.5
Use CPU for SOG spherical harmonic compression (instead of GPU)
Number of iterations for SOG SH compression (default: 10, more = better quality)
JSON file with custom settings for HTML viewer output
Pass custom parameters to .mjs generator scripts
Format: key1=value1,key2=value2
SplatTransform_GUI/
├── main.js # Electron main process
├── renderer.js # Renderer process (GUI logic)
├── index.html # Main GUI interface
├── styles.css # Application styling
├── package.json # Dependencies and scripts
└── README.md # This file
To package the app for distribution:
npm install electron-builder --save-dev
npm run packageThe built application will be in the dist/ folder.
Run with DevTools enabled:
npm run devThe GUI generates commands equivalent to the CLI. Here are some examples:
splat-transform input.ply output.csvsplat-transform -t 1,2,3 -r 45,0,90 -s 2.0 input.ply output.plysplat-transform input.ply output.compressed.plysplat-transform -H 2 -N -S 0,0,0,10 input.ply output.sogsplat-transform -E settings.json input.ply output.html- Ensure you have an active internet connection
- Try manually installing:
npm install @playcanvas/splat-transform - Check npm registry access
- Verify input file is a valid point cloud file
- Check the log output for specific error messages
- Ensure sufficient disk space for output
- Enable "Overwrite existing files" checkbox
- Or manually delete existing output file
This GUI is a wrapper for the excellent @playcanvas/splat-transform CLI tool by PlayCanvas.
MIT License - See LICENSE file for details
Contributions are welcome! Please feel free to submit issues or pull requests.
- Initial release
- Full GUI for all splat-transform options
- Auto-dependency detection and installation
- Live conversion logs
- Support for all input/output formats