st-tech / st-tech/ppf-contact-solver

[Feature] Animated Weight Painting Support for Parameters

Open
#48 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement queued
Dominant language
Python
Stars
4.5k
Forks
334
PR merge metrics
No merged PRs in 30d

Description

Motivation

Currently in the Blender add-on a dynamic group can only have a single value for each of its parameters, for example a single value for Young's Modulus that is applied to an entire object. Giving user's fine control over these parameters by setting them per vertex as well as being able to animate them would significantly expand what is possible with this add-on.

Proposal

Blender's default cloth solver has a neat feature where you can set min and max values for parameters and assign vertex groups to mix between them depending on vertex weight, these weights can also be animated with modifiers. Implementing something similar would achieve the goal in a Blender friendly way, though care should be taken to have separate min/max values and vertex groups for every parameter unlike Blender's solver which is incomplete in this sense. This feature could be applied to pin groups too, not just material parameters.

As vertex groups live on the object's surface extending this functionality to tetrahedral elements introduces additional complexity. The simplest solution would be simply using the value of the nearest surface or interpolating between them in some way. For fine control the vertex proximity modifier could be useful.

Alternatives Considered

Although two materials already can be joined with snap and merge it is not ideal, for example you cannot make a smooth gradient this way, and the max of 32 groups may be limiting in complex scenes.

Additional Context

To show what I mean, here is an example of changing a sheet's stiffness using a vertex group and the vertex weight proximity modifier:

https://github.com/user-attachments/assets/2165ee04-8a53-4be7-a626-031cbab98f52

Contribution Agreement
  • I confirm that any code, patches, scripts, attachments, or other copyrightable material I include in this issue may be used, reproduced, modified, and distributed by this project under the Apache License 2.0 or as otherwise described in CONTRIBUTING.md.
  • This is a feature request from the community (please provide a reference below).
Community Reference

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the Blender add-on's existing handling of dynamic-group parameters, pin groups, vertex groups, and tetrahedral elements; no source files or tests are identified in the issue. Define the design before implementation, including per-parameter min/max values, animated vertex weights, and how surface weights apply to tetrahedral elements, then verify the behavior on the illustrated sheet example.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.