Skip to content

Conversation

@PierreFonda3D
Copy link
Contributor

@PierreFonda3D PierreFonda3D commented Jan 14, 2026

Saving data to files and loading data from files

This PR adds new functionalities related to data saving and loading.
You can now save and load data from a simple click in the UI.

Scripts

Core/Scripts/UI/DataManager/SDataSaveLoad.cs

Script that listens to UI buttons and handles saving/loading data to files located in:
\SofaUnity\Core\Scripts\UI\DataManager\DynamicDataSaves

Data is saved as JSON and read back by the same script.

Example of a saved file format:

{
    "dataName": "amplitude",
    "optionalCustomName": "Amplitude Oscillator",
    "value": "1",
    "dataType": 2
}

Core/Scripts/UI/DataManager/DynamicSDataManager.cs and DynamicSdata.cs

Code cleanup and addition of an optional custom name functionality.
By default, the data name is used if no custom name is provided.

@PierreFonda3D
Copy link
Contributor Author

PierreFonda3D commented Jan 14, 2026

Missing:

  • Vec3 compatibility Save
  • Vec3 compatibility Load
  • Test in build mode to see if path are working

@PierreFonda3D PierreFonda3D added pr: status to review To notify reviewers to review this pull-request and removed pr: status wip labels Jan 22, 2026
Copy link
Contributor

@epernod epernod left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a few changes in the code.
Also could you add an example in the folder: SofaUnity/Scenes/Examples/
something like: Example_11_LiverDataUI (or another SOFA scene) with a json files containing values.

You could also put it in: SofaUnity/Scenes/Demos/UI/ if you think several examples could be useul to illustrate the Data loading/saving

@PierreFonda3D PierreFonda3D added pr: status wip and removed pr: status to review To notify reviewers to review this pull-request labels Feb 10, 2026
@PierreFonda3D
Copy link
Contributor Author

image example scene i wanted to add a Vec3 but there is none that don't break everythings

@PierreFonda3D PierreFonda3D added pr: status to review To notify reviewers to review this pull-request and removed pr: status wip labels Feb 10, 2026
@PierreFonda3D
Copy link
Contributor Author

  • Still need to find an example Vec3 on the new demo scene if possible

Copy link
Contributor

@epernod epernod left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in the caduceus.scn you can add: <ConstantForceField indices="0" totalForce="0 1000 0"/>

<Node name="Snake" >
        <SparseGridRamificationTopology name="grid" n="4 12 3" fileTopology="mesh/snake_body.obj" nbVirtualFinerLevels="3" finestConnectivity="0"/>

        <EulerImplicitSolver name="cg_odesolver" rayleighMass="1" rayleighStiffness="0.03" />
        <CGLinearSolver name="linear solver" iterations="20" tolerance="1e-12" threshold="1e-18" />
		<MechanicalObject name="dofs"  dy="2" position="@grid.position"/>
        <UniformMass totalMass="1.0" />
        <HexahedronFEMForceField name="FEM" youngModulus="30000.0" poissonRatio="0.3" method="large" 
        updateStiffnessMatrix="false" printLog="0" topology="@grid"/>
        
        <ConstantForceField indices="0" totalForce="0 1000 0"/>

		<UncoupledConstraintCorrection defaultCompliance="184" useOdeSolverIntegrationFactors="0"/>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr: status to review To notify reviewers to review this pull-request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants