This project is a (js) rewritting of my old eMesh desktop application (SDL, openGL2, C++)
It aim to provide an enought advanced paper-crafting tool to be used as an alternative prototyping tool ( as paperAce does ). Beside being as simple as possible to use.
touch devices are not fully supported yet, they will be soon
FreakPOC - [Reasonably Secure Proof Of Concept.] - Release Candidate
A browser that provides webGL.
When two joined triangles are struck successively, the edge they share is called frozen. if it already is, it will be unfrozen.
internal work :
global (user step)
Frozen edges are the main components of patterns. They connect the triangles you want to assemble to create one. From what Papier does its work, it first calculates the coordinates of each triangles in order to move them in a same plane. then he assembles the patterns, looking for frozen edges connected by triangles. Edges that are adjacent to triangles belonging to a pattern but that are not frozen can now be considered as pattern borders. From these data, it is now possible to represent the borders of flattened patterns in the form of a chain of ordered nodes.
Step by step internal work :
Before processing did after an edge freeze attempt, the rebuilding of every pattern, a copy of patterns is done. to restore app state if freeze attempt fails.
Flatten triangles
Flatten the triangles. The reason Papier exists! This single step could be sufficient to perform 3D printing from a desktop printer. This step also complicates things a little, code side. A "Wavefront", like most meshes, first describe the vertices of a 3d model, then the triangles are described using these vertices. But to be properly flattened, triangles must now store their own vertex coordinates. meaning is that a mesh summit could be representated by several flatened triangles summits. These vertices will then store the identifier (actually the index) of the vertex of the mesh to which they correspond.
Assemble patterns
Code is licenced under the termes of the GNU GPL v3
If you got interset in such kind of app and want more or if you want to contribute, feel free to contact me : [email protected]
Feel free to open an issue.