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.
Here is the begining of something functional. try it !
touch devices are not fully supported yet, they will be soon
FreakPOC - [Reasonably Secure Proof Of Concept.] - Release Candidate
- Provide an enought advanced paper-crafting tool to be used as an alternative prototyping tool ( as paperAce does ).
- Be as simple as possible to use.
- texturing.
- mesh editing.
A browser that provides webGL.
- Create a pattern.
- Extend a pattern.
- Merge patterns.
- Splitting patterns.
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
-
- Javascript
- WebGL ( throught three.js )
- SVG
- HTML
- CSS
- Three.js
- Hammer.js ( comming soon to provide touch devices compatibility )
- jQuery
- automate patterns final layout.
- full mobile devices support.
- clean, beautify and clarify code design.
- obtain funding to continue.
- make it able to generate autoclave tabs.
- make it able to generate assembly marks.
- make it able to generate laser-cut compatible documents.
- automate pattern selection.
- enrich configuration options.
- OOP rewrite.
- application layout.
- loading 3D user models.
- manual pattern editing.
- added an alternative pattern editing mode (fast way).
- pattern flattening.
- scaling capability.
- Thomas Saint Pierre - Initial work | code engineering s1pierro
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 : s1pierro@protonmail.com
Feel free to open an issue.