All Projects → zz85 → Threejs Path Flow

zz85 / Threejs Path Flow

🐬🐟 ↶Mesh Deformation / Bending / Following on a Curve

Programming Languages

javascript
184084 projects - #8 most used programming language
flow
126 projects

Projects that are alternatives of or similar to Threejs Path Flow

Patches
Patches is a visual programming editor for building WebVR and WebGL experiences.
Stars: ✭ 164 (-0.61%)
Mutual labels:  webgl, threejs, texture
Glmaps
Data visualization examples and tutorials from scratch. 数据可视化示例代码集与新手学习教程。
Stars: ✭ 288 (+74.55%)
Mutual labels:  webgl, threejs, curve
Matcaps
Huge library of matcap PNG textures organized by color
Stars: ✭ 607 (+267.88%)
Mutual labels:  webgl, threejs, texture
Ego
A lightweight decision making library for game AI.
Stars: ✭ 145 (-12.12%)
Mutual labels:  webgl, threejs
Interactive Repulsive Effect
🍫 An interactive repulsion effect of grid items as seen in BestServedBold's Dribbble shot "Holographic-Interactions".
Stars: ✭ 141 (-14.55%)
Mutual labels:  webgl, threejs
3d Force Graph
3D force-directed graph component using ThreeJS/WebGL
Stars: ✭ 2,386 (+1346.06%)
Mutual labels:  webgl, threejs
Earthjs
D3 Earth JS
Stars: ✭ 128 (-22.42%)
Mutual labels:  webgl, threejs
Jeelizfacefilter
Javascript/WebGL lightweight face tracking library designed for augmented reality webcam filters. Features : multiple faces detection, rotation, mouth opening. Various integration examples are provided (Three.js, Babylon.js, FaceSwap, Canvas2D, CSS3D...).
Stars: ✭ 2,042 (+1137.58%)
Mutual labels:  webgl, threejs
Ng Three Template
This is a basic template project to start with Angular 11.x and ThreeJS
Stars: ✭ 144 (-12.73%)
Mutual labels:  webgl, threejs
Stickyimageeffect
A sticky image effect for a slideshow inspired by ultanoir's website.
Stars: ✭ 158 (-4.24%)
Mutual labels:  webgl, threejs
Interactivelandscape
An exploration of an animated interactive landscape built with three.js.
Stars: ✭ 150 (-9.09%)
Mutual labels:  webgl, threejs
React Globe.gl
React component for Globe Data Visualization using ThreeJS/WebGL
Stars: ✭ 139 (-15.76%)
Mutual labels:  webgl, threejs
R3f Next Starter
Repo is moving to https://github.com/pmndrs/react-three-next
Stars: ✭ 137 (-16.97%)
Mutual labels:  webgl, threejs
Sketch
Explorations on cross-hatching, engraving, and similar non-photorealistic rendering.
Stars: ✭ 136 (-17.58%)
Mutual labels:  webgl, threejs
Geo Three
Tile based geographic world map visualization library for threejs
Stars: ✭ 146 (-11.52%)
Mutual labels:  webgl, threejs
Wechart
Create all the [ch]arts by cax or three.js - Cax 和 three.js 创造一切图[表]
Stars: ✭ 152 (-7.88%)
Mutual labels:  webgl, threejs
Andromeda
This is a WebGL recreation of the popular music video Gorillaz - Andromeda.
Stars: ✭ 145 (-12.12%)
Mutual labels:  webgl, threejs
Texture Compressor
CLI tool for texture compression using ASTC, ETC, PVRTC and S3TC in a KTX container.
Stars: ✭ 156 (-5.45%)
Mutual labels:  webgl, threejs
Ipyvolume
3d plotting for Python in the Jupyter notebook based on IPython widgets using WebGL
Stars: ✭ 1,696 (+927.88%)
Mutual labels:  webgl, threejs
Vue 3d Model
📷 vue.js 3D model viewer component
Stars: ✭ 1,925 (+1066.67%)
Mutual labels:  webgl, threejs

Path Flow aka Mesh Path Deformation Modifier

About

It is called by different names (eg. "Curve Modifier" in Blender, Path-based Deformation, Bend Modifier), but what this does is that it can take a mesh and bends it along a curve or a path.

It's quite a work in progress and renders only in wireframe now.

Feel free to hack the code.

flow-path-3

Examples

Flow - Allow a mesh to follow and bends along a path

Bend - Bend a mesh along another curve

Links

Credits: Killer Whale Orca 3D Model - https://free3d.com/3d-model/killer-whale-89887.html

three.js issue

Technical details

Path positions and Frenet Frames (containing tangents, normals and binormals) are generated using three.js Curve class.

These are stored in a DataTexture in 4 rows.

The vertex shader reads the texture, based on its offset transforms the geometry position.

(More to come)

Features

  • Bend vertex calculations
  • Minimizing twisting effect (Frenet frames)
  • Equi-distance sampling of points (From Curve)
  • Flow - Bend/Rigid option
  • OBJ file loading (via Drag and drop)

TODO

  • [ ] Add Sharks Multi-model
  • [ ] Granny Knot animation
  • [ ] Add OBJ texture support
  • [ ] Add follow cursor
  • [ ] Make flow a parameter
  • [ ] Shading
  • [x] Gif Support
  • [ ] Better rotation/transform controls

Context

You can find the full story in this tweet.

Basically I saw that @leon196 had built a curve modifier for Unity3D and I thought there was no reason it cannot be done in js/web/threejs too.

The idea on how to do it was to apply some of the knowledge I already knew.

I first tried "bending" stuff writing TextGeometry in three.js. (That eventually got removed due to complexity but the process build several of the foundation, eg. get tangents, spaced points etc).

Discovering and learning about calculating frenent frames was also important (writing tubes / extrude geometry) https://github.com/mrdoob/three.js/issues/905

The most useful article I read about doing so was from prideout's blog post. http://prideout.net/blog/?p=56

Next steps was the usual - looking into threejs examples and picking up what could be used. In this case, picking off the Spline Editor and Obj Loader examples.

Thanks to @mrdoob and @thespite for enouraging me to try this as usual.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].