diff --git a/README.md b/README.md index 57b0837d..638e2644 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,9 @@ GPU support requires a CUDA-capable NVIDIA GPU and driver (minimum GeForce GTX 9 The easiest way to install Warp is from [PyPI](https://pypi.org/project/warp-lang/): - pip install warp-lang +```text +pip install warp-lang +``` You can also use `pip install warp-lang[extras]` to install additional dependencies for running examples and USD-related features. @@ -37,7 +39,9 @@ We provide binaries built with the CUDA 12.5 runtime on the [GitHub Releases](ht Copy the URL of the appropriate wheel file (`warp-lang-{ver}+cu12-py3-none-{platform}.whl`) and pass it to the `pip install` command, e.g. - pip install https://github.com/NVIDIA/warp/releases/download/v1.2.0/warp_lang-1.2.0+cu12-py3-none-manylinux2014_x86_64.whl +```text +pip install https://github.com/NVIDIA/warp/releases/download/v1.2.0/warp_lang-1.2.0+cu12-py3-none-manylinux2014_x86_64.whl +``` The `--force-reinstall` option may need to be used to overwrite a previous installation. @@ -99,8 +103,7 @@ Built-in unit tests can be run from the command-line as follows: python -m warp.tests - -### examples/core +### warp/examples/core @@ -143,8 +146,7 @@ Built-in unit tests can be run from the command-line as follows:
- -### examples/fem +### warp/examples/fem @@ -175,8 +177,7 @@ Built-in unit tests can be run from the command-line as follows:
- -### examples/optim +### warp/examples/optim @@ -207,8 +208,7 @@ Built-in unit tests can be run from the command-line as follows:
- -### examples/sim +### warp/examples/sim @@ -251,7 +251,6 @@ Built-in unit tests can be run from the command-line as follows:
- ## Building For developers who want to build the library themselves, the following tools are required: diff --git a/docs/index.rst b/docs/index.rst index 46f0a09a..ba7da748 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -84,8 +84,8 @@ Built-in unit tests can be run from the command-line as follows:: python -m warp.tests -examples/core -^^^^^^^^^^^^^ +warp/examples/core +^^^^^^^^^^^^^^^^^^ .. list-table:: :class: gallery @@ -126,8 +126,8 @@ examples/core - wave - -examples/fem -^^^^^^^^^^^^ +warp/examples/fem +^^^^^^^^^^^^^^^^^ .. list-table:: :class: gallery @@ -157,8 +157,8 @@ examples/fem - stokes transfer - stokes -examples/optim -^^^^^^^^^^^^^^ +warp/examples/optim +^^^^^^^^^^^^^^^^^^^ .. list-table:: :class: gallery @@ -188,8 +188,8 @@ examples/optim - trajectory - walker -examples/sim -^^^^^^^^^^^^ +warp/examples/sim +^^^^^^^^^^^^^^^^^ .. list-table:: :class: gallery diff --git a/docs/modules/fem.rst b/docs/modules/fem.rst index 7b9419e1..6a5873d5 100644 --- a/docs/modules/fem.rst +++ b/docs/modules/fem.rst @@ -1,11 +1,11 @@ warp.fem -===================== +======== .. currentmodule:: warp.fem The ``warp.fem`` module is designed to facilitate solving physical systems described as differential equations. For example, it can solve PDEs for diffusion, convection, fluid flow, and elasticity problems -using finite-element-based (FEM) Galerkin methods, and allows users to quickly experiment with various FEM +using finite-element-based (FEM) Galerkin methods and allows users to quickly experiment with various FEM formulations and discretization schemes. Integrands @@ -59,7 +59,7 @@ passed as a dictionary in the `values` argument of the launcher function, for in integrate(diffusion_form, fields={"u": trial, "v": test}, values={"nu": viscosity}) -Basic workflow +Basic Workflow -------------- The typical steps for solving a linear PDE are as follow: @@ -113,7 +113,7 @@ The following excerpt from the introductory example ``warp/examples/fem/example_ To solve non-linear PDEs, one can use an iterative procedure and pass the current value of the studied function :class:`.DiscreteField` argument to the integrand, on which arbitrary operations are permitted. However, the result of the form must remain linear in the test and trial fields. -Introductory examples +Introductory Examples --------------------- ``warp.fem`` ships with a list of examples in the ``warp/examples/fem`` directory illustrating common model problems. @@ -129,7 +129,7 @@ Introductory examples - ``example_streamlines.py``: Using the :func:`lookup` operator to trace through a velocity field -Advanced usages +Advanced Usages --------------- High-order (curved) geometries @@ -137,7 +137,7 @@ High-order (curved) geometries It is possible to convert any :class:`.Geometry` (grids and explicit meshes) into a curved, high-order variant by deforming them with an arbitrary-order displacement field using the :meth:`~.DiscreteField.make_deformed_geometry` method. -The process looks as follow: :: +The process looks as follows:: # Define a base geometry base_geo = fem.Grid3D(res=resolution) @@ -331,7 +331,7 @@ Boundary Conditions .. autofunction:: project_linear_system -Memory management +Memory Management ----------------- .. autofunction:: set_default_temporary_store diff --git a/docs/modules/render.rst b/docs/modules/render.rst index 30d6ec10..c275e4a9 100644 --- a/docs/modules/render.rst +++ b/docs/modules/render.rst @@ -1,20 +1,18 @@ warp.render -=============================== +=========== .. currentmodule:: warp.render The ``warp.render`` module provides a set of renderers that can be used for visualizing scenes involving shapes of various types. -Built on top of these stand-alone renderers, the ``warp.sim.render`` module provides renderers that can be used to visualize scenes directly from ``warp.sim.ModelBuilder`` objects and update them from ``warp.sim.State`` objects. +Built on top of these stand-alone renderers, the ``warp.sim.render`` module provides renderers that can be used to +visualize scenes directly from ``warp.sim.ModelBuilder`` objects and update them from ``warp.sim.State`` objects. -.. - .. toctree:: - :maxdepth: 2 - -Stand-alone renderers ---------------------- +Standalone Renderers +-------------------- -The ``OpenGLRenderer`` provides an interactive renderer to play back animations in real time, the ``UsdRenderer`` provides a renderer that exports the scene to a USD file that can be rendered in a renderer of your choice. +The ``OpenGLRenderer`` provides an interactive renderer to play back animations in real time, the ``UsdRenderer`` +provides a renderer that exports the scene to a USD file that can be rendered in a renderer of your choice. .. autoclass:: UsdRenderer :members: @@ -23,10 +21,12 @@ The ``OpenGLRenderer`` provides an interactive renderer to play back animations .. autoclass:: OpenGLRenderer :members: -Simulation renderers +Simulation Renderers -------------------- -Based on these renderers from ``warp.render``, the ``SimRendererUsd`` (which equals ``SimRenderer``) and ``SimRendererOpenGL`` classes from ``warp.sim.render`` are derived to populate the renderers directly from ``warp.sim.ModelBuilder`` scenes and update them from ``warp.sim.State`` objects. +Based on these renderers from ``warp.render``, the ``SimRendererUsd`` (which equals ``SimRenderer``) and +``SimRendererOpenGL`` classes from ``warp.sim.render`` are derived to populate the renderers directly from +``warp.sim.ModelBuilder`` scenes and update them from ``warp.sim.State`` objects. .. currentmodule:: warp.sim.render @@ -36,10 +36,11 @@ Based on these renderers from ``warp.render``, the ``SimRendererUsd`` (which equ .. autoclass:: SimRendererOpenGL :members: -CUDA graphics interface +CUDA Graphics Interface ----------------------- -Warp provides a CUDA graphics interface that allows you to access OpenGL buffers from CUDA kernels. This is useful for manipulating OpenGL array buffers without having to copy them back and forth between the CPU and GPU. +Warp provides a CUDA graphics interface that allows you to access OpenGL buffers from CUDA kernels. +This is useful for manipulating OpenGL array buffers without having to copy them back and forth between the CPU and GPU. See the `CUDA documentation on OpenGL Interoperability `_ for more information. diff --git a/docs/modules/sim.rst b/docs/modules/sim.rst index 8c413f17..f6d6ce06 100644 --- a/docs/modules/sim.rst +++ b/docs/modules/sim.rst @@ -1,16 +1,9 @@ warp.sim -==================== +======== .. currentmodule:: warp.sim -.. - .. toctree:: - :maxdepth: 2 - -Warp includes a simulation module ``warp.sim`` that includes many common physical simulation models, and integrators for explicit and implicit time-stepping. - -.. note:: The simulation model is under construction and should be expected to change rapidly, please treat this section as work in progress. - +Warp includes a simulation module ``warp.sim`` that includes many common physical simulation models and integrators for explicit and implicit time-stepping. Model ----- @@ -156,7 +149,7 @@ Given the parent body's world transform :math:`x_{wp}` and the joint transform : .. autofunction:: eval_ik Integrators --------------- +----------- .. autoclass:: Integrator :members: @@ -171,7 +164,7 @@ Integrators :members: Importers --------------- +--------- Warp sim supports the loading of simulation models from URDF, MuJoCo (MJCF), and USD Physics files. @@ -183,8 +176,8 @@ Warp sim supports the loading of simulation models from URDF, MuJoCo (MJCF), and .. autofunction:: resolve_usd_from_url -Utility functions ------------------- +Utility Functions +----------------- Common utility functions used in simulators.