threepipe

repository·master·Indexed 21 days ago

https://github.com/repalash/threepipe

A modern 3D viewer framework built on top of three.js and written in TypeScript. Threepipe provides a modular toolkit for creating high-quality 3D viewers, configurators, and editors with advanced rendering capabilities, including deferred rendering, post-processing, and path tracing. It features a robust plugin system for extending functionality, such as OGC 3D Tiles rendering, Blender file importing, Gaussian splatting, and glTF optimization. Version 0.5.1.

Tokens
169.2K
Snippets
460
Records
635
Agent score
74%

What's inside threepipe

  1. What is Threepipe?

    master

    Threepipe is a high-level API built on top of three.js designed for creating 3D model viewers, configurators, editors, and interactive 3D applications. It abstracts away complex graphics and shader work, allowing developers to quickly deploy production-ready WebGL applications while remaining fully customizable via a modular plugin system.

    Key capabilities include:

    • Modular Architecture: Extend the viewer, scene objects, materials, shaders, and rendering via plugins.
    • Plugin System: Access a rich library of built-in plugins for features like progressive rendering, SSAA, and contact shadows.
    • Automated UI: uiconfig compatibility allows for automatic generation of configuration UIs in the browser.
    • Advanced Rendering: Built-in support for deferred rendering, post-processing, and RGBM HDR.
    • Asset Management: Extensive support for formats like glTF, GLB, OBJ, FBX, and more.
    • Serialization: Automatic serialization of viewer and plugin settings to GLB and JSON.
  2. Overview of Threepipe features

    master

    Threepipe is a modular 3D framework built on top of three.js. Key capabilities include:

    • Modular Architecture: Extend the viewer, scene objects, materials, shaders, and rendering via a plugin system.
    • Rendering Pipeline: Built-in support for deferred rendering, post-processing, and RGBM HDR rendering.
    • Realistic Graphics: Integration with webgi for high-quality screen-space effects (SSAO, SSR, Bloom, etc.) and path tracing.
    • Asset Pipeline: Support for glTF, GLB, OBJ, FBX, and more.
    • Serialization: Automatic saving of viewer and plugin settings into GLB (with custom extensions) or JSON formats.
    • Animation: A global timeline system for animating objects, materials, or viewer properties.
    • Editor Support: Compatible with the Threepipe web-based editor for scene configuration and export.
  3. Explore Threepipe Plugins and Packages

    master

    Threepipe is highly extensible through a plugin system. You can extend its capabilities using core plugins or specialized packages.

    Core Plugins

    Core plugins handle tasks like:

    • Rendering Effects: TonemapPlugin, SSAAPlugin, SSAOPlugin, VignettePlugin, ChromaticAberrationPlugin, FilmicGrainPlugin.
    • Interaction & UI: DropzonePlugin (drag & drop), PickingPlugin (object selection), TransformControlsPlugin (gizmos), LoadingScreenPlugin.
    • File Loading: Rhino3dmLoadPlugin, PLYLoadPlugin, STLLoadPlugin, KTX2LoadPlugin, USDZLoadPlugin, GLTFMeshOptDecodePlugin.
    • Animation: GLTFAnimationPlugin, AnimationObjectPlugin, PopmotionPlugin.
    • Scene Management: UndoManagerPlugin, ObjectConstraintsPlugin, CameraViewPlugin.

    Specialized Packages

    For advanced functionality, use these packages:

    • @threepipe/webgi-plugins: Realistic Global Illumination (SSR, SSGI, etc.).
    • @threepipe/plugin-tweakpane: Tweakpane UI integration.
    • @threepipe/plugin-r3f: React Three Fiber integration for declarative 3D experiences.
    • @threepipe/plugin-3d-tiles-renderer: Support for 3D Tiles (b3dm, i3dm, etc.).
    • @threepipe/plugin-path-tracing: Path-tracing capabilities via three-gpu-pathtracer.
    • @threepipe/plugin-assimpjs: Support for FBX and other formats via AssimpJS.
  4. Use @threepipe/plugin-geometry-generator for text geometry

    master

    The @threepipe/plugin-geometry-generator package provides tools for generating text geometries that can be regenerated at runtime within a Threepipe application.

    Note on Breaking Changes (v1.0.0): Most geometry generators have been moved to the core threepipe package. This specific plugin now only contains:

    • TextGeometryGenerator
    • FontLibrary
    • GeometryGeneratorExtrasPlugin

    If you need other types of geometry generators, you should import them directly from 'threepipe' instead of this plugin.

  5. Use @threepipe/plugin-gaussian-splatting for Gaussian splatting effects

    master
    The @threepipe/plugin-gaussian-splatting plugin extends Threepipe to enable the rendering of Gaussian splatting effects within a 3D scene. This plugin is part of the Threepipe ecosystem and is designed to integrate with the core engine to handle specialized splatting data and rendering pipelines.
  6. Use @threepipe/plugins-extra-importers for additional 3D file formats

    master
    The @threepipe/plugins-extra-importers package provides additional importers for the Threepipe engine, enabling support for various 3D file formats beyond the core capabilities. You can use these plugins to extend Threepipe's ability to load and process diverse 3D assets in your applications.