threepipe
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. import {defineConfig} from 'vitepress'
  2. // https://vitepress.dev/reference/site-config
  3. export default defineConfig({
  4. title: "ThreePipe",
  5. description: "Effortlessly create 3D web experiences, from quick demos to advanced applications, with Three.js",
  6. themeConfig: {
  7. logo: '/logo.svg',
  8. outline: 'deep',
  9. // https://vitepress.dev/reference/default-theme-config
  10. nav: [
  11. { text: 'Home', link: '/' },
  12. { text: 'Examples', link: 'https://threepipe.org/examples' },
  13. { text: '3D Editor', link: 'https://editor.threepipe.org' },
  14. { text: 'API Reference', link: 'https://threepipe.org/docs' }
  15. ],
  16. sidebar: [
  17. {
  18. text: 'Introduction', collapsed: false,
  19. items: [
  20. {text: 'What is Threepipe?', link: 'guide/introduction'},
  21. {text: 'Getting Started', link: 'guide/getting-started'},
  22. {text: 'Threepipe Editors', link: 'guide/editors'},
  23. {text: 'Features', link: 'guide/features'},
  24. {text: 'Viewer API', link: 'guide/viewer-api'},
  25. {text: 'Core Plugins', link: 'guide/core-plugins'},
  26. {text: '@threepipe Packages', link: 'guide/threepipe-packages'},
  27. ]
  28. },
  29. {
  30. text: 'Guides', collapsed: false,
  31. items: [
  32. {text: 'Loading Files', link: 'guide/loading-files'},
  33. {text: 'Exporting Files', link: 'guide/exporting-files'},
  34. {text: 'Render Pipeline', link: 'guide/render-pipeline'},
  35. {text: 'Material Extension', link: 'guide/material-extension'},
  36. {text: 'UI Configuration', link: 'guide/ui-config'},
  37. {text: 'Serialization', link: 'guide/serialization'},
  38. {text: 'Plugin System', link: 'guide/plugin-system'},
  39. {text: 'Screen Pass Shaders', link: 'guide/screen-pass'},
  40. ]
  41. },
  42. {
  43. text: 'Articles', collapsed: false,
  44. items: [
  45. {text: 'Mesh Lines (Spiral)', link: 'notes/fat-lines'},
  46. {text: 'glTF Mesh Lines', link: 'notes/gltf-mesh-lines'},
  47. {text: 'Setting Background', link: 'notes/scene-background'},
  48. {text: 'ShaderToy Shader Tutorial', link: 'notes/shadertoy-player'},
  49. ]
  50. },
  51. {
  52. text: 'Core Plugins', collapsed: false,
  53. items: [
  54. {
  55. text: 'Import', collapsed: true,
  56. items: [
  57. {text: 'Rhino3dmLoadPlugin', link: 'plugin/Rhino3dmLoadPlugin'},
  58. {text: 'PLYLoadPlugin', link: 'plugin/PLYLoadPlugin'},
  59. {text: 'STLLoadPlugin', link: 'plugin/STLLoadPlugin'},
  60. {text: 'KTX2LoadPlugin', link: 'plugin/KTX2LoadPlugin'},
  61. {text: 'KTXLoadPlugin', link: 'plugin/KTXLoadPlugin'},
  62. {text: 'USDZLoadPlugin', link: 'plugin/USDZLoadPlugin'},
  63. {text: 'GLTFMeshOptDecodePlugin', link: 'plugin/GLTFMeshOptDecodePlugin'},
  64. ],
  65. },
  66. {
  67. text: 'Post-processing', collapsed: true,
  68. items: [
  69. {text: 'TonemapPlugin', link: 'plugin/TonemapPlugin'},
  70. {text: 'VignettePlugin', link: 'plugin/VignettePlugin'},
  71. {text: 'ChromaticAberrationPlugin', link: 'plugin/ChromaticAberrationPlugin'},
  72. {text: 'FilmicGrainPlugin', link: 'plugin/FilmicGrainPlugin'},
  73. ],
  74. },
  75. {
  76. text: 'Rendering Pipeline', collapsed: true,
  77. items: [
  78. {text: 'ProgressivePlugin', link: 'plugin/ProgressivePlugin'},
  79. {text: 'SSAAPlugin', link: 'plugin/SSAAPlugin'},
  80. {text: 'DepthBufferPlugin', link: 'plugin/DepthBufferPlugin'},
  81. {text: 'NormalBufferPlugin', link: 'plugin/NormalBufferPlugin'},
  82. {text: 'GBufferPlugin', link: 'plugin/GBufferPlugin'},
  83. {text: 'SSAOPlugin', link: 'plugin/SSAOPlugin'},
  84. {text: 'FrameFadePlugin', link: 'plugin/FrameFadePlugin'},
  85. ],
  86. },
  87. {
  88. text: 'Interaction', collapsed: true,
  89. items: [
  90. {text: 'DropzonePlugin', link: 'plugin/DropzonePlugin'},
  91. {text: 'PickingPlugin', link: 'plugin/PickingPlugin'},
  92. {text: 'LoadingScreenPlugin', link: 'plugin/LoadingScreenPlugin'},
  93. {text: 'FullScreenPlugin', link: 'plugin/FullScreenPlugin'},
  94. {text: 'InteractionPromptPlugin', link: 'plugin/InteractionPromptPlugin'},
  95. {text: 'TransformControlsPlugin', link: 'plugin/TransformControlsPlugin'},
  96. {text: 'EditorViewWidgetPlugin', link: 'plugin/EditorViewWidgetPlugin'},
  97. {text: 'DeviceOrientationControlsPlugin', link: 'plugin/DeviceOrientationControlsPlugin'},
  98. {text: 'PointerLockControlsPlugin', link: 'plugin/PointerLockControlsPlugin'},
  99. {text: 'ThreeFirstPersonControlsPlugin', link: 'plugin/ThreeFirstPersonControlsPlugin'},
  100. ],
  101. },
  102. {
  103. text: 'Animation', collapsed: true,
  104. items: [
  105. {text: 'GLTFAnimationPlugin', link: 'plugin/GLTFAnimationPlugin'},
  106. {text: 'PopmotionPlugin', link: 'plugin/PopmotionPlugin'},
  107. {text: 'CameraViewPlugin', link: 'plugin/CameraViewPlugin'},
  108. {text: 'TransformAnimationPlugin', link: 'plugin/TransformAnimationPlugin'},
  109. ],
  110. },
  111. {
  112. text: 'Material', collapsed: true,
  113. items: [
  114. {text: 'NoiseBumpMaterialPlugin', link: 'plugin/NoiseBumpMaterialPlugin'},
  115. {text: 'CustomBumpMapPlugin', link: 'plugin/CustomBumpMapPlugin'},
  116. {text: 'ClearcoatTintPlugin', link: 'plugin/ClearcoatTintPlugin'},
  117. {text: 'FragmentClippingExtensionPlugin', link: 'plugin/FragmentClippingExtensionPlugin'},
  118. {text: 'ParallaxMappingPlugin', link: 'plugin/ParallaxMappingPlugin'},
  119. ],
  120. },
  121. {
  122. text: 'Export', collapsed: true,
  123. items: [
  124. {text: 'CanvasSnapshotPlugin', link: 'plugin/CanvasSnapshotPlugin'},
  125. {text: 'AssetExporterPlugin', link: 'plugin/AssetExporterPlugin'},
  126. {text: 'FileTransferPlugin', link: 'plugin/FileTransferPlugin'},
  127. ],
  128. },
  129. {
  130. text: 'Extras', collapsed: true,
  131. items: [
  132. {text: 'ContactShadowGroundPlugin', link: 'plugin/ContactShadowGroundPlugin'},
  133. {text: 'HDRiGroundPlugin', link: 'plugin/HDRiGroundPlugin'},
  134. {text: 'VirtualCamerasPlugin', link: 'plugin/VirtualCamerasPlugin'},
  135. {text: 'Object3DWidgetsPlugin', link: 'plugin/Object3DWidgetsPlugin'},
  136. {text: 'Object3DGeneratorPlugin', link: 'plugin/Object3DGeneratorPlugin'},
  137. {text: 'GLTFKHRMaterialVariantsPlugin', link: 'plugin/GLTFKHRMaterialVariantsPlugin'},
  138. {text: 'SimplifyModifierPlugin', link: 'plugin/SimplifyModifierPlugin'},
  139. {text: 'MeshOptSimplifyModifierPlugin', link: 'plugin/MeshOptSimplifyModifierPlugin'},
  140. ],
  141. },
  142. {
  143. text: 'Configurator', collapsed: true,
  144. items: [
  145. {text: 'MaterialConfiguratorBasePlugin', link: 'plugin/MaterialConfiguratorBasePlugin'},
  146. {text: 'SwitchNodeBasePlugin', link: 'plugin/SwitchNodeBasePlugin'},
  147. ],
  148. },
  149. {
  150. text: 'UI', collapsed: true,
  151. items: [
  152. {text: 'RenderTargetPreviewPlugin', link: 'plugin/RenderTargetPreviewPlugin'},
  153. {text: 'GeometryUVPreviewPlugin', link: 'plugin/GeometryUVPreviewPlugin'},
  154. // {text: 'SceneUiConfigPlugin', link: 'plugin/SceneUiConfigPlugin'},
  155. // {text: 'ViewerUiConfigPlugin', link: 'plugin/ViewerUiConfigPlugin'},
  156. ],
  157. },
  158. {
  159. text: 'Base', collapsed: true,
  160. items: [
  161. {text: 'AAssetManagerProcessStatePlugin', link: 'plugin/AAssetManagerProcessStatePlugin'},
  162. {text: 'ACameraControlsPlugin', link: 'plugin/ACameraControlsPlugin'},
  163. {text: 'BaseGroundPlugin', link: 'plugin/BaseGroundPlugin'},
  164. {text: 'BaseImporterPlugin', link: 'plugin/BaseImporterPlugin'},
  165. {text: 'PipelinePassPlugin', link: 'plugin/PipelinePassPlugin'},
  166. {text: 'AScreenPassExtensionPlugin', link: 'plugin/AScreenPassExtensionPlugin'},
  167. ],
  168. },
  169. ]
  170. },
  171. {
  172. text: 'Packages', collapsed: false,
  173. items: [
  174. {text: 'WebGi Rendering Plugins', link: 'https://webgi.dev/'},
  175. {text: 'Tweakpane Plugin', link: 'package/plugin-tweakpane'},
  176. {text: 'Blueprint.js Plugin', link: 'package/plugin-blueprintjs'},
  177. {text: 'Tweakpane Editor Plugin', link: 'package/plugin-tweakpane-editor'},
  178. {text: 'Configurator Plugins', link: 'package/plugin-configurator'},
  179. {text: 'Geometry Generator Plugin', link: 'package/plugin-geometry-generator'},
  180. {text: 'glTF Transform Plugin', link: 'package/plugin-gltf-transform'},
  181. {text: 'Extra Importers Plugins', link: 'package/plugins-extra-importers'},
  182. {text: 'Network Plugin', link: 'package/plugin-network'},
  183. {text: 'Blend Importer Plugin', link: 'package/plugin-blend-importer'},
  184. {text: 'Gaussian Splatting Plugin', link: 'package/plugin-gaussian-splatting'},
  185. {text: 'svg-renderer Plugin', link: 'package/plugin-svg-renderer'},
  186. {text: '3D Tiles (OGC) Renderer Plugin', link: 'package/plugin-3d-tiles-renderer'},
  187. {text: 'Assimpjs Plugin', link: 'package/plugin-assimpjs'},
  188. {text: 'Path Tracing', link: 'package/plugin-path-tracing'},
  189. ]
  190. },
  191. ],
  192. socialLinks: [
  193. { icon: 'github', link: 'https://github.com/repalash/threepipe' },
  194. { icon: 'twitter', link: 'https://twitter.com/repalash' }
  195. ],
  196. footer: {
  197. message: 'ThreePipe - Make 3D applications on the web',
  198. copyright: 'Copyright © 2023-present, <a href="https://repalash.com/">repalash</a>. All rights reserved.',
  199. },
  200. // https://vitepress.dev/reference/default-theme-search#minisearch-options
  201. search: {
  202. provider: 'local',
  203. options: {
  204. miniSearch: {
  205. /**
  206. * @type {Pick<import('minisearch').Options, 'extractField' | 'tokenize' | 'processTerm'>}
  207. */
  208. options: {
  209. /* ... */
  210. },
  211. /**
  212. * @type {import('minisearch').SearchOptions}
  213. * @default
  214. * { fuzzy: 0.2, prefix: true, boost: { title: 4, text: 2, titles: 1 } }
  215. */
  216. searchOptions: {
  217. /* ... */
  218. }
  219. }
  220. }
  221. },
  222. }
  223. })