Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update existing notebooks of examples #265

Merged
merged 6 commits into from
Oct 17, 2024
Merged

Conversation

diegoferigo
Copy link
Member

@diegoferigo diegoferigo commented Oct 16, 2024


📚 Documentation preview 📚: https://jaxsim--265.org.readthedocs.build//265/

@diegoferigo diegoferigo self-assigned this Oct 16, 2024
@diegoferigo diegoferigo force-pushed the update_notebook_simulation branch 3 times, most recently from a448a53 to a4eb643 Compare October 16, 2024 12:53
@diegoferigo
Copy link
Member Author

ReadTheDocs is currently failing to build the notebooks, any clue @flferretti?

logs
[rtd-command-info] start-time: 2024-10-17T10:32:10.802038Z, end-time: 2024-10-17T10:33:48.520958Z, duration: 97, exit-code: 2
python -m sphinx -T -b html -d _build/doctrees -D language=en . $READTHEDOCS_OUTPUT/html
Running Sphinx v8.1.3
loading translations [en]... done
Matplotlib is building the font cache; this may take a moment.
Using Sphinx-Gallery to convert rst text blocks to markdown for .ipynb files.
Read in collections ...
  examples: Initialised
Clean collections ...
  examples: (CopyFolderDriver) Folder deleted: /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/_collections/examples
Executing collections ...
  examples: (CopyFolderDriver) Copy folder...
Converting `source_suffix = ['.rst', '.md', '.ipynb']` to `source_suffix = {'.rst': 'restructuredtext', '.md': 'restructuredtext', '.ipynb': 'restructuredtext'}`.
[autosummary] generating autosummary for: _collections/examples/README.md, _collections/examples/jaxsim_as_physics_engine.ipynb, _collections/examples/jaxsim_for_robot_controllers.ipynb, examples.rst, guide/install.rst, index.rst, modules/api.rst, modules/integrators.rst, modules/math.rst, modules/mujoco.rst, modules/parsers.rst, modules/rbda.rst, modules/typing.rst, modules/utils.rst
[autosummary] generating autosummary for: /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/modules/_autosummary/jaxsim.api.com.rst, /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/modules/_autosummary/jaxsim.api.common.rst, /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/modules/_autosummary/jaxsim.api.contact.rst, /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/modules/_autosummary/jaxsim.api.data.rst, /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/modules/_autosummary/jaxsim.api.frame.rst, /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/modules/_autosummary/jaxsim.api.joint.rst, /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/modules/_autosummary/jaxsim.api.kin_dyn_parameters.rst, /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/modules/_autosummary/jaxsim.api.link.rst, /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/modules/_autosummary/jaxsim.api.model.rst, /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/modules/_autosummary/jaxsim.api.ode.rst, /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/modules/_autosummary/jaxsim.api.ode_data.rst, /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/modules/_autosummary/jaxsim.api.references.rst, /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/modules/_autosummary/jaxsim.rbda.aba.rst, /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/modules/_autosummary/jaxsim.rbda.collidable_points.rst, /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/modules/_autosummary/jaxsim.rbda.contacts.soft.rst, /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/modules/_autosummary/jaxsim.rbda.crba.rst, /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/modules/_autosummary/jaxsim.rbda.forward_kinematics.rst, /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/modules/_autosummary/jaxsim.rbda.jacobian.rst, /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/modules/_autosummary/jaxsim.rbda.utils.rst
myst v4.0.0: MdParserConfig(commonmark_only=False, gfm_only=False, enable_extensions={'dollarmath', 'amsmath'}, disable_syntax=[], all_links_external=False, links_external_new_tab=False, url_schemes=('http', 'https', 'mailto', 'ftp'), ref_domains=None, fence_as_directive=set(), number_code_blocks=[], title_to_header=False, heading_anchors=0, heading_slug_func=None, html_meta={}, footnote_sort=True, footnote_transition=True, words_per_minute=200, substitutions={}, linkify_fuzzy_links=True, dmath_allow_labels=True, dmath_allow_space=True, dmath_allow_digits=True, dmath_double_inline=False, update_mathjax=True, mathjax_classes='tex2jax_process|mathjax_process|math|output_area', enable_checkboxes=False, suppress_warnings=[], highlight_code_blocks=True)
myst-nb v1.1.2: NbParserConfig(custom_formats={}, metadata_key='mystnb', cell_metadata_key='mystnb', kernel_rgx_aliases={}, eval_name_regex='^[a-zA-Z_][a-zA-Z0-9_]*$', execution_mode='auto', execution_cache_path='', execution_excludepatterns=(), execution_timeout=180, execution_in_temp=False, execution_allow_errors=False, execution_raise_on_error=True, execution_show_tb=False, merge_streams=False, render_plugin='default', remove_code_source=False, remove_code_outputs=False, code_prompt_show='Show code cell {type}', code_prompt_hide='Hide code cell {type}', number_source_lines=False, output_stderr='show', render_text_lexer='myst-ansi', render_error_lexer='ipythontb', render_image_options={'scale': '60'}, render_figure_options={}, render_markdown_format='commonmark', output_folder='build', append_css=True, metadata_to_fm=False)
Using jupyter-cache at: /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/_readthedocs/.jupyter_cache
generating gallery...
generating gallery for ../generated_examples... 
computation time summary:
building [mo]: targets for 0 po files that are out of date
writing output... 
building [html]: targets for 14 source files that are out of date
updating environment: [new config] 34 added, 0 changed, 0 removed
reading sources... [  3%] _collections/examples/README
reading sources... [  6%] _collections/examples/jaxsim_as_physics_engine
/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/_collections/examples/jaxsim_as_physics_engine.ipynb: Executing notebook using local CWD [mystnb]
/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/_collections/examples/jaxsim_as_physics_engine.ipynb: Executed notebook in 53.72 seconds [mystnb]
reading sources... [  9%] _collections/examples/jaxsim_for_robot_controllers
/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/_collections/examples/jaxsim_for_robot_controllers.ipynb: Executing notebook using local CWD [mystnb]
error: XDG_RUNTIME_DIR is invalid or not set in the environment.

====================== slowest reading durations =======================
53.789 _collections/examples/jaxsim_as_physics_engine
0.009 _collections/examples/README
Final clean of collections ...
  examples: (CopyFolderDriver) Folder deleted: /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/_collections/examples

Traceback (most recent call last):
  File "/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/jupyter_cache/executors/utils.py", line 58, in single_nb_execution
    executenb(
  File "/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/nbclient/client.py", line 1314, in execute
    return NotebookClient(nb=nb, resources=resources, km=km, **kwargs).execute()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/jupyter_core/utils/__init__.py", line 165, in wrapped
    return loop.run_until_complete(inner)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/asyncio/base_events.py", line 687, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/nbclient/client.py", line 709, in async_execute
    await self.async_execute_cell(
  File "/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/nbclient/client.py", line 1062, in async_execute_cell
    await self._check_raise_for_error(cell, cell_index, exec_reply)
  File "/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/nbclient/client.py", line 918, in _check_raise_for_error
    raise CellExecutionError.from_cell_and_msg(cell, exec_reply_content)
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
os.environ["MUJOCO_GL"] = "osmesa"

# Create the MJCF resources from the URDF.
mjcf_string, assets = jaxsim.mujoco.UrdfToMjcf.convert(
    urdf=model.built_from,
    # Create the camera used by the recorder.
    cameras=jaxsim.mujoco.loaders.MujocoCamera.build_from_target_view(
        camera_name="cartpole_camera",
        lookat=js.link.com_position(
            model=model,
            data=data_zero,
            link_index=js.link.name_to_idx(model=model, link_name="cart"),
            in_link_frame=False,
        ),
        distance=3,
        azimut=150,
        elevation=-10,
    ),
)

# Create a helper to operate on the MuJoCo model and data.
mj_model_helper = jaxsim.mujoco.MujocoModelHelper.build_from_xml(
    mjcf_description=mjcf_string, assets=assets
)

# Create the video recorder.
recorder = jaxsim.mujoco.MujocoVideoRecorder(
    model=mj_model_helper.model,
    data=mj_model_helper.data,
    fps=int(1 / model.time_step),
    width=320 * 2,
    height=240 * 2,
)
------------------

----- stderr -----
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/glfw/__init__.py:914: GLFWError: (65550) b'Failed to detect any supported platform'
  warnings.warn(message, GLFWError)
/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/glfw/__init__.py:914: GLFWError: (65537) b'The GLFW library is not initialized'
  warnings.warn(message, GLFWError)
------------------

�[0;31m---------------------------------------------------------------------------�[0m
�[0;31mFatalError�[0m                                Traceback (most recent call last)
Cell �[0;32mIn[5], line 27�[0m
�[1;32m     22�[0m mj_model_helper �[38;5;241m=�[39m jaxsim�[38;5;241m.�[39mmujoco�[38;5;241m.�[39mMujocoModelHelper�[38;5;241m.�[39mbuild_from_xml(
�[1;32m     23�[0m     mjcf_description�[38;5;241m=�[39mmjcf_string, assets�[38;5;241m=�[39massets
�[1;32m     24�[0m )
�[1;32m     26�[0m �[38;5;66;03m# Create the video recorder.�[39;00m
�[0;32m---> 27�[0m recorder �[38;5;241m=�[39m �[43mjaxsim�[49m�[38;5;241;43m.�[39;49m�[43mmujoco�[49m�[38;5;241;43m.�[39;49m�[43mMujocoVideoRecorder�[49m�[43m(�[49m
�[1;32m     28�[0m �[43m    �[49m�[43mmodel�[49m�[38;5;241;43m=�[39;49m�[43mmj_model_helper�[49m�[38;5;241;43m.�[39;49m�[43mmodel�[49m�[43m,�[49m
�[1;32m     29�[0m �[43m    �[49m�[43mdata�[49m�[38;5;241;43m=�[39;49m�[43mmj_model_helper�[49m�[38;5;241;43m.�[39;49m�[43mdata�[49m�[43m,�[49m
�[1;32m     30�[0m �[43m    �[49m�[43mfps�[49m�[38;5;241;43m=�[39;49m�[38;5;28;43mint�[39;49m�[43m(�[49m�[38;5;241;43m1�[39;49m�[43m �[49m�[38;5;241;43m/�[39;49m�[43m �[49m�[43mmodel�[49m�[38;5;241;43m.�[39;49m�[43mtime_step�[49m�[43m)�[49m�[43m,�[49m
�[1;32m     31�[0m �[43m    �[49m�[43mwidth�[49m�[38;5;241;43m=�[39;49m�[38;5;241;43m320�[39;49m�[43m �[49m�[38;5;241;43m*�[39;49m�[43m �[49m�[38;5;241;43m2�[39;49m�[43m,�[49m
�[1;32m     32�[0m �[43m    �[49m�[43mheight�[49m�[38;5;241;43m=�[39;49m�[38;5;241;43m240�[39;49m�[43m �[49m�[38;5;241;43m*�[39;49m�[43m �[49m�[38;5;241;43m2�[39;49m�[43m,�[49m
�[1;32m     33�[0m �[43m)�[49m

File �[0;32m~/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/jaxsim/mujoco/visualizer.py:51�[0m, in �[0;36mMujocoVideoRecorder.__init__�[0;34m(self, model, data, fps, width, height, **kwargs)�[0m
�[1;32m     48�[0m �[38;5;28mself�[39m�[38;5;241m.�[39mmodel: mujoco�[38;5;241m.�[39mMjModel �[38;5;241m|�[39m �[38;5;28;01mNone�[39;00m �[38;5;241m=�[39m �[38;5;28;01mNone�[39;00m
�[1;32m     49�[0m �[38;5;28mself�[39m�[38;5;241m.�[39mreset(model�[38;5;241m=�[39mmodel, data�[38;5;241m=�[39mdata)
�[0;32m---> 51�[0m �[38;5;28mself�[39m�[38;5;241m.�[39mrenderer �[38;5;241m=�[39m �[43mmujoco�[49m�[38;5;241;43m.�[39;49m�[43mRenderer�[49m�[43m(�[49m
�[1;32m     52�[0m �[43m    �[49m�[43mmodel�[49m�[38;5;241;43m=�[39;49m�[38;5;28;43mself�[39;49m�[38;5;241;43m.�[39;49m�[43mmodel�[49m�[43m,�[49m
�[1;32m     53�[0m �[43m    �[49m�[38;5;241;43m*�[39;49m�[38;5;241;43m*�[39;49m�[43m(�[49m�[38;5;28;43mdict�[39;49m�[43m(�[49m�[43mwidth�[49m�[38;5;241;43m=�[39;49m�[43mwidth�[49m�[43m,�[49m�[43m �[49m�[43mheight�[49m�[38;5;241;43m=�[39;49m�[43mheight�[49m�[43m)�[49m�[43m �[49m�[38;5;241;43m|�[39;49m�[43m �[49m�[43mkwargs�[49m�[43m)�[49m�[43m,�[49m
�[1;32m     54�[0m �[43m�[49m�[43m)�[49m

File �[0;32m~/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/mujoco/renderer.py:86�[0m, in �[0;36mRenderer.__init__�[0;34m(self, model, height, width, max_geom)�[0m
�[1;32m     84�[0m �[38;5;28;01mif�[39;00m �[38;5;28mself�[39m�[38;5;241m.�[39m_gl_context:
�[1;32m     85�[0m   �[38;5;28mself�[39m�[38;5;241m.�[39m_gl_context�[38;5;241m.�[39mmake_current()
�[0;32m---> 86�[0m �[38;5;28mself�[39m�[38;5;241m.�[39m_mjr_context �[38;5;241m=�[39m �[43m_render�[49m�[38;5;241;43m.�[39;49m�[43mMjrContext�[49m�[43m(�[49m
�[1;32m     87�[0m �[43m    �[49m�[43mmodel�[49m�[43m,�[49m�[43m �[49m�[43m_enums�[49m�[38;5;241;43m.�[39;49m�[43mmjtFontScale�[49m�[38;5;241;43m.�[39;49m�[43mmjFONTSCALE_150�[49m�[38;5;241;43m.�[39;49m�[43mvalue�[49m
�[1;32m     88�[0m �[43m�[49m�[43m)�[49m
�[1;32m     89�[0m _render�[38;5;241m.�[39mmjr_setBuffer(
�[1;32m     90�[0m     _enums�[38;5;241m.�[39mmjtFramebuffer�[38;5;241m.�[39mmjFB_OFFSCREEN�[38;5;241m.�[39mvalue, �[38;5;28mself�[39m�[38;5;241m.�[39m_mjr_context
�[1;32m     91�[0m )
�[1;32m     92�[0m �[38;5;28mself�[39m�[38;5;241m.�[39m_mjr_context�[38;5;241m.�[39mreadDepthMap �[38;5;241m=�[39m _enums�[38;5;241m.�[39mmjtDepthMap�[38;5;241m.�[39mmjDEPTH_ZEROFAR

�[0;31mFatalError�[0m: an OpenGL platform library has not been loaded into this process, this most likely means that a valid OpenGL context has not been created before mjr_makeContext was called


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/sphinx/cmd/build.py", line 514, in build_main
    app.build(args.force_all, args.filenames)
  File "/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/sphinx/application.py", line 381, in build
    self.builder.build_update()
  File "/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 358, in build_update
    self.build(
  File "/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 385, in build
    updated_docnames = set(self.read())
                           ^^^^^^^^^^^
  File "/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 502, in read
    self._read_serial(docnames)
  File "/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 567, in _read_serial
    self.read_doc(docname)
  File "/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 630, in read_doc
    publisher.publish()
  File "/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/docutils/core.py", line 234, in publish
    self.document = self.reader.read(self.source, self.parser,
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/sphinx/io.py", line 106, in read
    self.parse()
  File "/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/docutils/readers/__init__.py", line 76, in parse
    self.parser.parse(self.input, document)
  File "/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/myst_nb/sphinx_.py", line 152, in parse
    with create_client(
         ^^^^^^^^^^^^^^
  File "/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/myst_nb/core/execute/base.py", line 79, in __enter__
    self.start_client()
  File "/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/myst_nb/core/execute/direct.py", line 50, in start_client
    raise ExecutionError(str(self.path)) from result.err
myst_nb.core.execute.base.ExecutionError: /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/_collections/examples/jaxsim_for_robot_controllers.ipynb

Exception occurred:
  File "/home/docs/checkouts/readthedocs.org/user_builds/jaxsim/conda/265/lib/python3.12/site-packages/myst_nb/core/execute/direct.py", line 50, in start_client
    raise ExecutionError(str(self.path)) from result.err
myst_nb.core.execute.base.ExecutionError: /home/docs/checkouts/readthedocs.org/user_builds/jaxsim/checkouts/265/docs/_collections/examples/jaxsim_for_robot_controllers.ipynb
The full traceback has been saved in /tmp/sphinx-err-qid8sqzf.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!

@diegoferigo
Copy link
Member Author

I probably got it, I moved the import of the mujoco package before exporting the renderer environment variable.

@diegoferigo diegoferigo force-pushed the update_notebook_simulation branch 2 times, most recently from 7427319 to 6f20c40 Compare October 17, 2024 11:13
@flferretti
Copy link
Collaborator

I probably got it, I moved the import of the mujoco package before exporting the renderer environment variable.

Then my guess is that the environment variable just gets ignored in this way. I'll check the changes to understand better this behavior

@diegoferigo diegoferigo marked this pull request as ready for review October 17, 2024 11:34
@diegoferigo
Copy link
Member Author

I probably got it, I moved the import of the mujoco package before exporting the renderer environment variable.

Then my guess is that the environment variable just gets ignored in this way. I'll check the changes to understand better this behavior

No what I meant is that it was my mistake since I moved the import without realizing of the introduced problem. Now I fixed it.

Copy link
Collaborator

@flferretti flferretti left a comment

Choose a reason for hiding this comment

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

Thanks a lot Diego!

examples/jaxsim_as_physics_engine.ipynb Outdated Show resolved Hide resolved
examples/jaxsim_for_robot_controllers.ipynb Outdated Show resolved Hide resolved
examples/jaxsim_for_robot_controllers.ipynb Outdated Show resolved Hide resolved
Copy link
Collaborator

@flferretti flferretti left a comment

Choose a reason for hiding this comment

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

Last nit and then LGTM, thanks!

examples/jaxsim_for_robot_controllers.ipynb Outdated Show resolved Hide resolved
Co-authored-by: Filippo Luca Ferretti <[email protected]>
@diegoferigo
Copy link
Member Author

Closing and reopening to trigger again ReadTheDocs CI

@diegoferigo diegoferigo reopened this Oct 17, 2024
@diegoferigo diegoferigo merged commit 6cae1f0 into main Oct 17, 2024
34 of 35 checks passed
@diegoferigo diegoferigo deleted the update_notebook_simulation branch October 17, 2024 14:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants