Git Product home page Git Product logo

hydrographics's Introduction

Hydrographic Printing Simulator

Hydrographic Printing, also called Hydrographics, is a viable method for coloring objects created with 3D printers. However, executing the hydrographic technique leads to a complex interaction between a thin film and a 3D printed object, in which the image in the film must adhere to the object. To handle the difficulty of predicting the final result of hydrographic printing, we propose a 3D computational simulation that uses Position-Based Dynamics, a popular technique for simulating deformable bodies and widely used in physics engines. We take advantage of this technique running in parallel a GPU-based simulation with suitable performance. We simulate the film behavior and its interaction with the printed object, as an interaction between a soft-body colliding with a rigid one. To evaluate the achieved performance consistency, we varied the number of vertices and voxels in the bodies involved and observed that the simulation kept running in real-time. We also execute the hydrographic technique in different printed models and compare these results with the simulated models.

hydrographics's People

Contributors

leothomas77 avatar

Watchers

James Cloos avatar  avatar

hydrographics's Issues

Remove distorted texture generation from the main simulation loop

When generates the distorted texture in the main simulation loop, the program freezes because the iterations spends all the cpu

It is possible improve it, removing of main dimulation loop, and changing the application to other state, bypassing the loop

Other wai is develop testing the texture generation to a online CUDA way, like the update method in hidrographic class

Improve the dynamic texture coords generation to avoid seams

Mainly on spheric models or models with seams, the dynamic texture generation has the issue of seams

One possible way to resolve this is get the nearby film vertices when generating dynamic texture by the NvFlexGetNeighbors method in Nvdidia Flex 1.2.0

With this method, it is possible to retrieve the neighbors of each vertex and by a threshold value, avoid the jumping of neighbors of a values near to 0.0 to 1.0 when the seams occurs (in both cases in u coord and v coord of a texture)

Other actions to avoid seams:
✔️ generate texture without mip-map
✔️ test different ways of texture expanding (side by side, to border, without border)
✔️ generate a borde in the texture, about 10 pixels

  • Compute texture coordinate according the nearby

Save generated texture in a image file

Get the dimensions of the film (proportional to an A4 size)

Resize the screen to the proportions of an A4 size

Generates a view matrix with ortographic view

Use some function like glReadPixels to get pixels and save to a file

Search for possible cause of incoherent variations of FPS

In the tests, some measures are incoherent according the parameters

Posible causes: the initialization of variables (or the solver) can leads to fluctuations in the FPS measures

Search for the initialization routines, keep all strucures empty and relase all memory instances before the simulation start the main loop

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.