- Python 3.8+
- Flask 2.0+
- pandas 1.0+
- pytest
- black
- flake8
vest/
├── vest/ # Main package
│ ├── __init__.py # Package initialization
│ ├── app.py # Flask application
│ ├── cli.py # Command-line interface
│ ├── data_loader.py # Data validation
│ ├── templates/
│ │ └── viewer.html # Main HTML template
│ └── static/
│ └── viewer.js # Three.js viewer
├── tests/ # Test suite
├── examples.py # Usage examples
├── setup.py # Package configuration
├── README.md # Documentation
└── LICENSE # MIT License
# Clone or navigate to project directory
cd vest
# Install in editable mode with dev dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/# Build distribution packages
python setup.py sdist bdist_wheel
# Upload to PyPI (requires credentials)
twine upload dist/*- 3D Visualization: Browser-based using Three.js
- Interactive Navigation: WASD + Mouse controls
- Image Display: Click to view full-size
- DataFrame Support: Works with pandas DataFrames
- CSV Support: Load data from CSV files
- Pip-Installable: Easy distribution
Create a Flask application instance.
Load data from CSV file with validation.
Validate and load from pandas DataFrame.
GET /- Main viewer pageGET/POST /api/data- Get/set scene dataGET /api/image/<filename>- Serve image filesGET /api/stats- Get scene statistics
- WebGL 2.0 support
- ES6 JavaScript support
- Modern browser (Chrome 90+, Firefox 88+, Safari 14+, Edge 90+)
- Use reasonable dataset sizes (1000-10000 points)
- Ensure images are optimized (compressed)
- Run on hardware with GPU acceleration
- Close unnecessary browser tabs
vest data.csv --port 8080- Check
image_base_pathis correct - Verify filenames match exactly
- Ensure images are accessible
- Reduce number of points
- Optimize image sizes
- Enable GPU acceleration in browser settings