Skip to content
  • Search
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

ZMT zurich med tech

  1. Home
  2. Sim4Life
  3. CAD Modeling
  4. How to add a layer with a thickness over a ViP model, e.g., clothing?

How to add a layer with a thickness over a ViP model, e.g., clothing?

Scheduled Pinned Locked Moved CAD Modeling
15 Posts 5 Posters 2.4k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H Offline
    H Offline
    Habib
    ZMT
    wrote on last edited by
    #1

    NOTE: This feature is only available with Sim4Life V6.2.1. At the time of publishing this post, this version has not been released yet.

    1. Load a ViP model shell into the project. There is one example shell distributed with the tutorials. Other shells will be made available in the future. (Alternatively, the skin of a model can be used, but might be much slower to process)
    2. Select the shell model entity and from the ribbon, select Mesh Tools | Mesh Doctor
    3. From the Options window, select Make Manifold
    4. Create a block or cylinder covering the parts of the body to be covered by an extra thicker layer
    5. Multi-select the Skin and the Block. From the ribbon, select Mesh Tools | Intersection patch
    6. Select the newly created patch. From the ribbon, select Mesh Tools | Extrude Patch
    7. Assign a thickness in the Options window and select Run

    Make Manifold.gif
    Intersect Patch.gif
    Extrude Patch.gif

    1 Reply Last reply
    3
    • S Offline
      S Offline
      suchitkumar
      wrote on last edited by
      #2

      Hello. Thank you for showing such nice example. I have a question, is Sim4Life V6.2.1 available now? In my sim4life update tool, the latest version showing for download is V6.2.0.4280.
      Best regards
      Suchit

      1 Reply Last reply
      0
      • S Offline
        S Offline
        sipho.mfolozi
        wrote on last edited by
        #3

        Hi Habib,

        Thanks for the demonstration. I have two questions:

        1. I use Sim4Life V6.2.2.5984 for science. When I select Mesh Tools, the Mesh Doctor option does not appear and I, therefore, can't select Make Manifold.

        2. Say I wanted to create multiple layers of clothing, e.g. a vest, then a shirt, then a jersey, and finally a coat. How would I go about doing this using your method?

        1 Reply Last reply
        0
        • brynB Offline
          brynB Offline
          bryn
          ZMT
          wrote on last edited by
          #4

          Hi @sipho-mfolozi

          I think the Mesh Doctor should be available in Sim4Life for science. I think it is part of the basic framework.

          Regarding your second question, you have two options:

          • you extrude multiple times with different thickness value. this will create overlapping regions - in the voxeler you need to specify the priorities
          • you create a patch on the first layer (only the outer surface) and extrude from there (see animation below)

          Youtube Video

          1 Reply Last reply
          0
          • ofliO ofli referenced this topic on
          • V Offline
            V Offline
            VigneshYork
            wrote on last edited by
            #5

            Hi,

            Just to confirm, would the clothing deform with soft tissues if the pose of the model is changed?

            Thanks,
            Vignesh

            1 Reply Last reply
            0
            • brynB Offline
              brynB Offline
              bryn
              ZMT
              wrote on last edited by
              #6

              @VigneshYork you can assign the clothing surface model as "User Defined Mesh" in the Poser tool. After doing this, the clothing entity will have a lock symbol, because is linked to the posable model.

              While the deformation assumes the user-defined mesh is inside the body, it should behave correctly for thin layers on the skin. For mesh parts that are outside the body, the implementation will use nearest-neighbor interpolation to extrapolate the deformation.

              1 Reply Last reply
              0
              • V Offline
                V Offline
                VigneshYork
                wrote on last edited by
                #7

                Hello Bryn,

                Thank you. Would like to confirm two additional points:

                1. Can this be applied to antennas also? I would like to mimic wearable antennas in different poses without having to move them at each pose?
                2. Can posing followed by simulation we done programatically so that it is automated without needing for manual meshing after posing ?

                Thanks

                1 Reply Last reply
                0
                • brynB Offline
                  brynB Offline
                  bryn
                  ZMT
                  wrote on last edited by
                  #8

                  hi @VigneshYork.

                  I recently wrote a script to transform a phone following the movement of a triangle in the posable model (or three vertices), e.g., on the hand. Simply assigning the phone as "User Defined Mesh" may not work nicely, since you

                  • have to convert the phone to a triangle mesh
                  • the phone may deform (unrealistic)

                  instead, you can do the following:

                  • you create three vertices, e.g. on the skin near where the phone is placed (unposed)
                  • you add these vertices as "User Defined Meshes"
                  • you store the initial position of the three points (e.g. on the hand): tri_0 = [verts[0].Position, verts[1].Position, verts[2].Position]
                  • you compute the position of the three points in a different posture: tri_p = [verts[0].Position, verts[1].Position, verts[2].Position]
                  • you compute the rigid transformation from the base triangle tri_0 to the posed triangle tri_p
                  • this can be done using: tr = XCoreMath.RigidTransform(tri_0, tri_p)
                  • apply this relative transform to the EntityGroup containing the phone/device: phone_group.ApplyTransform(tr)

                  You can also programmatically (maybe since Sim4Life 7.2, or in the upcoming 8.0) apply different postures stored in a posture file using the Python API (see attached file apply_postures.py for reference)

                  1 Reply Last reply
                  0
                  • V Offline
                    V Offline
                    VigneshYork
                    wrote on last edited by
                    #9

                    Hi Bryn,

                    Thanks. I shall try that today. Just to check, would it work in sim4life 7.0.1 (the version I have)?

                    Thanks

                    1 Reply Last reply
                    0
                    • brynB Offline
                      brynB Offline
                      bryn
                      ZMT
                      wrote on last edited by
                      #10

                      available in 7.2

                      • XCoreMath.RigidTransform
                      • XPoser.ApplyPosture
                      • XPoser.CloneAsStatic

                      available in 7.0.1

                      • XCoreMath.RigidTransform

                      please note these API functions are not yet in the s4l_v1, i.e. the signature may change if we believe it improves the feature.

                      1 Reply Last reply
                      0
                      • V Offline
                        V Offline
                        VigneshYork
                        wrote on last edited by
                        #11

                        Thank you

                        1 Reply Last reply
                        0
                        • V Offline
                          V Offline
                          VigneshYork
                          wrote on last edited by
                          #12

                          How to save postures in a folder? I tried cloning the model as static after posing but not sure how to save the file as *.pose?

                          1 Reply Last reply
                          0
                          • brynB Offline
                            brynB Offline
                            bryn
                            ZMT
                            wrote on last edited by
                            #13
                            • to store the current posture, type a name and press "Store Posture As". this will add the posture to the list above
                            • to delete one of the postures, press the "X" button next to the posture
                            • to export the postures press "Export" and type a filename
                            • to import press "Import"

                            image.png

                            1 Reply Last reply
                            0
                            • V Offline
                              V Offline
                              VigneshYork
                              wrote on last edited by
                              #14

                              Hi,

                              Thank you.

                              Regards,
                              Vignesh

                              1 Reply Last reply
                              0
                              • V Offline
                                V Offline
                                VigneshYork
                                wrote on last edited by
                                #15

                                Hello,

                                Sorry I am facing an issue with moving antennas to different locations based on the steps above. I used three points on the skin and calculated the transformation between static and posed states. I used this transformation to transform the antenna position to the new position (using RigidTransform and ApplyTransform functions).

                                However I get errors that the antenna source edge is within a solid. I have changed priorities during voxelling providing antennas higher priority but the errors still exist. What can I do? I would like to move antennas in a similar fashion to how soft tissues deform.

                                Thanks
                                Vignesh

                                1 Reply Last reply
                                0
                                • S sanand referenced this topic on
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                • Login

                                • Don't have an account? Register

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • Search