[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-73776":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":16,"starSnapshotCount":16,"syncStatus":30,"lastSyncTime":31,"discoverSource":32},73776,"spark","sparkjsdev\u002Fspark","sparkjsdev",":sparkles:  An advanced 3D Gaussian Splatting renderer for THREE.js","",null,"TypeScript",3154,338,28,85,0,19,67,204,57,109.59,"MIT License",false,"main",true,[],"2026-06-12 04:01:11","\u003Cp align=\"center\">\n\n  ![Spark logo](https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F5287631a-083c-4c86-80f6-4dca24aa263f#gh-light-mode-only)\n  ![Spark logo](https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F91e8d74b-84a5-4073-bd72-d7228f948dc6#gh-dark-mode-only)\n\n  \u003Ch3 align=\"center\">An advanced 3D Gaussian Splatting renderer for THREE.js\u003C\u002Fh3>\n  \u003Cdiv align=\"center\">\n\n  [Features](#features) -\n  [Getting Started](#getting-started) -\n  \u003Ca href=\"https:\u002F\u002Fsparkjs.dev\u002F\">Documentation\u003C\u002Fa> -\n  \u003Ca href=\"https:\u002F\u002Fsparkjs.dev\u002F\">FAQ\u003C\u002Fa>\n  \u003C\u002Fdiv>\n  \u003C\u002Fp>\n\n   \u003Cdiv align=\"center\">\n\n  [![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-%23d43e4c)](https:\u002F\u002Fgithub.com\u002Fsparkjsdev\u002Fspark\u002Fblob\u002Fmain\u002FLICENSE)\n  [![npm version](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002F@sparkjsdev\u002Fspark?color=d43e4c)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@sparkjsdev\u002Fspark)\n\n  \u003C\u002Fdiv>\n\n\u003Cp>\n  \u003Ca href=\"https:\u002F\u002Fsparkjs.dev\" target=\"_blank\">\n    \u003Cpicture>\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n\nBuilt by [World Labs](https:\u002F\u002Fwww.worldlabs.ai).\n\n## Features\n\n- Integrates with THREE.js rendering pipeline to fuse splat and mesh-based objects\n- Portable: Works across almost all devices, targeting 98%+ WebGL2 support\n- Renders fast even on low-powered mobile devices\n- Render multiple splat objects together with correct sorting\n- Most major splat file formats supported including: [.PLY](https:\u002F\u002Fgithub.com\u002Fgraphdeco-inria\u002Fgaussian-splatting) (also [compressed](https:\u002F\u002Fblog.playcanvas.com\u002Fcompressing-gaussian-splats\u002F#compressed-ply-format)), [.SPZ](https:\u002F\u002Fgithub.com\u002Fnianticlabs\u002Fspz), [.SPLAT](https:\u002F\u002Fgithub.com\u002Fantimatter15\u002Fsplat), [.KSPLAT](https:\u002F\u002Fgithub.com\u002Fmkkellogg\u002FGaussianSplats3D), [.SOG](https:\u002F\u002Fdeveloper.playcanvas.com\u002Fuser-manual\u002Fgaussian-splatting\u002Fformats\u002Fsog\u002F)\n- Render multiple viewpoints simultaneously\n- Fully dynamic: each splat can be transformed and edited for animation\n- Real-time splat color editing, displacement, and skeletal animation\n- Shader graph system to dynamically create\u002Fedit splats on the GPU\n\nCheck out all the [examples](https:\u002F\u002Fsparkjs.dev\u002Fexamples\u002F)\n\n## Getting Started\n\n### Copy Code\n\nCopy the following code into an `index.html` file.\n\n\n```html\n\u003Cstyle> body {margin: 0;} \u003C\u002Fstyle>\n\u003Cscript type=\"importmap\">\n  {\n    \"imports\": {\n      \"three\": \"https:\u002F\u002Fcdnjs.cloudflare.com\u002Fajax\u002Flibs\u002Fthree.js\u002F0.180.0\u002Fthree.module.js\",\n      \"@sparkjsdev\u002Fspark\": \"https:\u002F\u002Fsparkjs.dev\u002Freleases\u002Fspark\u002F2.0.0\u002Fspark.module.js\"\n    }\n  }\n\u003C\u002Fscript>\n\u003Cscript type=\"module\">\n  import * as THREE from \"three\";\n  import { SparkRenderer, SplatMesh } from \"@sparkjsdev\u002Fspark\";\n\n  const scene = new THREE.Scene();\n  const camera = new THREE.PerspectiveCamera(60, window.innerWidth \u002F window.innerHeight, 0.01, 1000);\n  const renderer = new THREE.WebGLRenderer();\n  renderer.setSize(window.innerWidth, window.innerHeight);\n  document.body.appendChild(renderer.domElement)\n\n  const spark = new SparkRenderer({ renderer });\n  scene.add(spark);\n\n  const splatURL = \"https:\u002F\u002Fsparkjs.dev\u002Fassets\u002Fsplats\u002Fbutterfly.spz\";\n  const butterfly = new SplatMesh({ url: splatURL });\n  butterfly.quaternion.set(1, 0, 0, 0);\n  butterfly.position.set(0, 0, -3);\n  scene.add(butterfly);\n\n  renderer.setAnimationLoop(function animate(time) {\n    renderer.render(scene, camera);\n    butterfly.rotation.y += 0.01;\n  });\n\u003C\u002Fscript>\n```\n\n### CDN\n\n```html\n\u003Cscript type=\"importmap\">\n  {\n    \"imports\": {\n      \"three\": \"https:\u002F\u002Fcdnjs.cloudflare.com\u002Fajax\u002Flibs\u002Fthree.js\u002F0.180.0\u002Fthree.module.js\",\n      \"@sparkjsdev\u002Fspark\": \"https:\u002F\u002Fsparkjs.dev\u002Freleases\u002Fspark\u002F2.0.0\u002Fspark.module.js\"\n     }\n  }\n\u003C\u002Fscript>\n```\n\n### NPM\n\n```shell\nnpm install @sparkjsdev\u002Fspark\n```\n\n## Run Examples locally\n\nInstall [Rust](https:\u002F\u002Fwww.rust-lang.org\u002Ftools\u002Finstall) if it's not already installed in your machine.\n\nNext, build Spark by running:\n```\nnpm install\nnpm run build\n```\nThis will first build the Rust Wasm component (can be invoked via `npm run build:wasm`), then Spark itself (`npm run build`).\n\nThe examples fetch assets from a remote URL. This step is optional, but offline development and faster loading times are possible if you download and cache the assets files locally with the following command:\n```\nnpm run assets:download\n```\n\nOnce you've built Spark and optionally downloaded the assets, you can now run the examples:\n```\nnpm start\n```\nThis will run a dev server by default at [http:\u002F\u002Flocalhost:8080\u002F](http:\u002F\u002Flocalhost:8080\u002F). Check the console log output to see if yours is served on a different port.\n\n## Develop and contribute to the project\n\n### Build troubleshooting\n\nFirst try cleaning all the build files and re-building everything:\n```\nnpm run clean\nnpm install\nnpm run build\n```\n\nThere's no versioning system for assets. If you need to re-download a specific file you can delete that asset file individually or download all assets from scratch:\n\n```\n npm run assets:clean\n npm run assets:download\n```\n\n### Ignore dist directory during development\n\nTo ignore the dist directory and prevent accidental commits and merge conflicts\n\n```\ngit update-index --assume-unchanged dist\u002F*\n```\n\nTo revert and be able to commit into to the dist directory again:\n\n```\ngit update-index --no-assume-unchanged dist\u002F*\n```\n\nTo list ignored files in case of need to troubleshoot\n\n```\ngit ls-files -v | grep '^[a-z]' | cut -c3-\n```\n\n### Build docs and site\n\nInstall [Mkdocs Material](https:\u002F\u002Fsquidfunk.github.io\u002Fmkdocs-material\u002F)\n\n```\npip install mkdocs-material\n```\n\nIf you hit an `externally managed environment` error on macOS and if you installed python via `brew` try:\n\n```\nbrew install mkdocs-material\n```\n\nEdit markdown in `\u002Fdocs` directory\n\n```\nnpm run docs\n```\n\n### Build Spark website\n\nBuild the static site and docs in a `site` directory.\n\n```\nnpm run site:build\n```\n\nYou can run any static server in the `site` directory but for convenience you can run\n\n```\nnpm run site:serve\n```\n\n### Deploy Spark website\n\nThe following command will generate a static site from the `docs` directory and push it to the [repo](https:\u002F\u002Fgithub.com\u002Fsparkjsdev\u002Fsparkjsdev.github.io) that hosts the site via `gh-pages`\n\n```\nnpm run site:deploy\n```\n\n### Compress splats\n\nTo compress a splat to [spz](https:\u002F\u002Fscaniverse.com\u002Fspz) run\n\n`npm run assets:compress \u003Cfile or URL to ply>`\n","Spark 是一个为 THREE.js 设计的高级3D高斯点渲染器。它能够将点云和基于网格的对象融合到THREE.js渲染管线中，支持多种主流点云文件格式，并且能够在几乎所有的设备上运行，尤其在低功耗移动设备上也能保持良好的性能。此外，Spark 支持实时编辑点云颜色、位移以及骨骼动画，通过其着色器图系统可以在GPU上动态创建或修改点云。该项目非常适合需要高质量3D渲染但又受限于硬件性能的应用场景，如虚拟现实、增强现实应用或是任何对图形处理有较高要求但需考虑跨平台兼容性的Web项目。",2,"2026-06-11 03:47:20","high_star"]