Skip to content

[PythonAPI] Python bindings refactoring#94

Draft
EulalieCoevoet wants to merge 70 commits into
SofaComplianceRobotics:roboticsfrom
EulalieCoevoet:pr_pythonbindingsrefactoring
Draft

[PythonAPI] Python bindings refactoring#94
EulalieCoevoet wants to merge 70 commits into
SofaComplianceRobotics:roboticsfrom
EulalieCoevoet:pr_pythonbindingsrefactoring

Conversation

@EulalieCoevoet
Copy link
Copy Markdown

@EulalieCoevoet EulalieCoevoet commented Jan 5, 2026

Implements #69

New API:

  • Sofa.ImGui:
    • setKinematicsComponents() no quick access
    • setInverseProblemSolver()
    • addActuator()
    • addTCP()
    • addAccessoryComponent()
    • getRobotConnectionToggle()
    • setRobotConnectionToggle()
  • Sofa.ImGui.DataMonitorWindow: [new Window, replaces SimulationState]
    • addData()
  • Sofa.ImGui.IOWindow:
    • addData() // both input and output
    • Input.addData()
    • Output.addData()
  • Sofa.ImGui.MoveWindow:
  • Sofa.ImGui.MyRobotWindow.Connection (tested ✔️):
    • getSelectedPort()
    • registerAvailablePortsCallback()
    • updateAvailablePorts()
  • Sofa.ImGui.MyRobotWindow.Information (tested ✔️):
    • addData()
  • Sofa.ImGui.MyRobotWindow.Settings (tested ✔️):
    • addData()
  • Sofa.ImGui.PlottingWindow (tested ✔️)
    • addData()
  • Sofa.ImGui.ProgramWindow (tested ✔️)
    • importProgram()
  • BaseWindow:
addData(string label,   
        py::object value,    
        py::object min = pybind11::object(),   
        py::object max = pybind11::object(),   
        string group = "",   
        string tooltip = "")

- disable changing workbench when the robot is connected
- disable the simulation/robot button if no robot (from the python API) has been detected
- minor renaming
@HanaeRateau HanaeRateau changed the title [PythonAPI] Python bingings refactoring [PythonAPI] Python bindings refactoring Feb 19, 2026
@EulalieCoevoet EulalieCoevoet added the enhancement New feature or request label Feb 27, 2026
EulalieCoevoet and others added 20 commits March 11, 2026 14:25
* [SceneGraphWindow] cleaning

* Update SofaImGui/src/SofaImGui/windows/SceneGraphWindow.cpp

Co-authored-by: HanaeRateau <hanaerateau@yahoo.fr>

---------

Co-authored-by: HanaeRateau <hanaerateau@yahoo.fr>
* [All] Adds video recorder

* records in screenshots folder

* generalizes generated filename with date and time

* disabled in scene editor workbench

* adds to viewmenu and viewport context menu

* [ComponentsWindow] list components examples (SofaComplianceRobotics#102)

* [ComponentsWindow] list components examples

* [SofaImGui] ImGuiGUIEngine: init mouse interaction enabled (SofaComplianceRobotics#101)

---------

Co-authored-by: HanaeRateau <hanaerateau@yahoo.fr>

* [SofaImGui] Widget: adds missing float widget (SofaComplianceRobotics#103)

* [SofaImGui] Widget: adds missing float widget

* fixes scientific e format

* [SofaGLFW] use ctrl+shift for keyboard events (SofaComplianceRobotics#104)

* [SofaGLFW] use ctrl+shift for keyboard events

* [SofaImGui] Format LocalTextLinkOpenURL and add useful links (SofaComplianceRobotics#106)

* [SofaImGui] open documentation and format LocalTextLinkOpenURL

* correct usage of ellipsis

* adds more links

* [MouseManagerWindow] fixes crash (SofaComplianceRobotics#107)

* [Widgets] refactoring and limits table vertical size in windows (SofaComplianceRobotics#105)

* [Widgets] refactoring and limits table vertical size in windows

* add bounding box widget

* Precomputes table size before starting the table

---------

Co-authored-by: HanaeRateau <hanaerateau@yahoo.fr>

* [SofaImGui] Cleaning simulation driving window (SofaComplianceRobotics#109)

* [SofaImGui] cleaning simulation driving window

* fixes compilation

* [resources] adds new icons and fixes alignement

* adds RecordVideoWindow

* review requested changes: adds message on footer status bar in failure

* Apply suggestion from @EulalieCoevoet

* Adds error footer message if no file has been recorded

* Apply review suggestion

---------

Co-authored-by: HanaeRateau <hanaerateau@yahoo.fr>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants