Open code, practice, and notes →
Download source with English comments · for reading
21 · GS viewer review and candidate comparison
Week 3 / original Day 21 · Document and example provided · This is a learning sequence, not a fixed daily workload.
Full roadmap · Workspace usage
Goal
Summarize the scope of a small GS viewer and the reasons for choosing a library.
Prerequisites
15~20.
Key concepts and explanations
The original candidates GaussianSplats3D and huggingface/gsplat.js remain reference candidates. The current document prioritizes evaluating Spark because it is useful for learning how a Three.js scene and WebGL2 connect with SplatMesh transforms and lifetimes. This is neither a measured conclusion that it is fastest nor a final adoption decision.
Compare candidates in one table covering supported formats, compatible Three.js versions, SH support, loading/cleanup APIs, selection features, license, and maintenance status. Installing all three libraries or benchmarking large datasets is outside this scope.
Skills you will develop
- Summarize the scope of a small GS viewer and the reasons for choosing a library.
- Reproduce the completion criteria below and answer the self-check questions in your own words.
Exercises
- Read the official README of each of the three candidates and create a comparison table.
- Define minimum viewer acceptance criteria for loading, controls, errors, and cleanup with one small dataset.
- Summarize what you understand and the remaining questions about GS principles and implementation, and keep the data out of Git.
Variables to observe
Candidate library features and versions. Performance remains unverified until measured under identical conditions.
Completion criteria
- Distinguished the candidate comparison from the reason for evaluating Spark.
- Specified the minimum viewer scope.
- Recorded week 3 concepts and unresolved questions.
Self-check questions
- Can the fastest library be determined from a feature list alone?
- What contract should you check first when replacing a library?
Official references
Experiment notes — fill these in yourself
Goal
Key concepts
Changed variables and predictions
Actual results
What I learned
Remaining questions
Previous: Three.js+GS camera and interaction · Next: React+Three.js component design
Linked example and execution scope
Runnable source code · Workspace unit ID: 21-gs-review
An educational CPU Canvas viewer that reads small .splat and ASCII GS PLY files. The limits are 1 MiB·512 splats; binary PLY and general mesh PLY are not supported. Spark, GPU tile rendering, higher-order SH, and GS picking are outside the implementation scope. The default scene uses data created here, and measurements apply only to this CPU example.
Any previously saved code is preserved. To use the new original source, first back up everything as a full JSON file, then select Restore original code. Your notes are not erased.