Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 11 additions & 13 deletions docs/agents/docs/codeblocks.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# Executable Code Blocks

We use [md-babel-py](https://github.com/leshy/md-babel-py/) to execute code blocks in markdown and insert results.

## Golden Rule
Expand Down Expand Up @@ -54,7 +52,7 @@ Execute code blocks in markdown files and insert the results.
echo "cwd: $(pwd)"
```

<!--Result:-->
{/* Result: */}
```
cwd: /work
```
Expand All @@ -66,7 +64,7 @@ a = "hello world"
print(a)
```

<!--Result:-->
{/* Result: */}
```
hello world
```
Expand All @@ -77,7 +75,7 @@ Sessions preserve state between code blocks:
print(a, "again")
```

<!--Result:-->
{/* Result: */}
```
hello world again
```
Expand All @@ -89,7 +87,7 @@ console.log("Hello from Node.js");
console.log(`Node version: ${process.version}`);
```

<!--Result:-->
{/* Result: */}
```
Hello from Node.js
Node version: v22.21.1
Expand All @@ -112,7 +110,7 @@ plt.grid(alpha=0.3)
plt.savefig('{output}', transparent=True)
```

<!--Result:-->
{/* Result: */}
![output](assets/matplotlib-demo.svg)

### Pikchr
Expand Down Expand Up @@ -155,7 +153,7 @@ arrow from X to Out.w

</details>

<!--Result:-->
{/* Result: */}
![output](assets/pikchr-demo.svg)

### Asymptote
Expand Down Expand Up @@ -183,7 +181,7 @@ xaxis("$x$",BottomTop,LeftTicks,p=white);
yaxis("$dP/dx$",LeftRight,RightTicks(trailingzero),p=white);
```

<!--Result:-->
{/* Result: */}
![output](assets/histogram.svg)

### Graphviz
Expand All @@ -193,7 +191,7 @@ A -> B -> C
A -> C
```

<!--Result:-->
{/* Result: */}
![output](assets/graph.svg)

### OpenSCAD
Expand All @@ -203,7 +201,7 @@ cube([10, 10, 10]);
sphere(r=7);
```

<!--Result:-->
{/* Result: */}
![output](assets/cube-sphere.png)

### Diagon
Expand All @@ -214,7 +212,7 @@ ASCII art diagrams:
1 + 1/2 + sum(i,0,10)
```

<!--Result:-->
{/* Result: */}
```
10
___
Expand All @@ -229,7 +227,7 @@ A -> B -> C
A -> C
```

<!--Result:-->
{/* Result: */}
```
┌───┐
│A │
Expand Down
4 changes: 2 additions & 2 deletions docs/agents/docs/doclinks.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ Full documentation if needed: [`utils/docs/doclinks.md`](/dimos/utils/docs/docli

## Syntax

<!-- doclinks-ignore-start -->
{/* doclinks-ignore-start */}
| Pattern | Example |
|-------------|-----------------------------------------------------|
| Code file | `[`service/spec.py`]()` → resolves path |
| With symbol | `Configurable` in `[`spec.py`]()` → adds `#L<line>` |
| Doc link | `[Configuration](.md)` → resolves to doc |
<!-- doclinks-ignore-end -->
{/* doclinks-ignore-end */}
Comment on lines +7 to +13
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P1 doclinks-ignore markers changed to JSX syntax, breaking the doclinks tool

dimos/utils/docs/doclinks.py uses re.compile(r"<!--\s*doclinks-ignore-start\s*-->") to identify regions to skip. Changing these markers from <!-- doclinks-ignore-start/end --> to {/* doclinks-ignore-start/end */} means the regex will no longer match, so the doclinks tool will attempt to resolve the example patterns inside the table as real file references and likely fail or produce incorrect output when run against this file.


## Usage

Expand Down
12 changes: 5 additions & 7 deletions docs/agents/docs/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@

# Code Blocks

**All code blocks must be executable.**
Never write illustrative/pseudo code blocks.
If you're showing an API usage pattern, create a minimal working example that actually runs. This ensures documentation stays correct as the codebase evolves.
Expand Down Expand Up @@ -75,7 +73,7 @@ C: box "Step 3" rad 5px fit wid 170% ht 170%

</details>

<!--Result:-->
{/* Result: */}
![output](assets/pikchr_basic.svg)

## Box sizing
Expand All @@ -99,7 +97,7 @@ C: box "two lines" "of text" rad 5px fit wid 170% ht 170%

</details>

<!--Result:-->
{/* Result: */}
![output](assets/pikchr_sizing.svg)

The pattern `fit wid 170% ht 170%` means: auto-size to text, then scale width by 170% and height by 170%.
Expand All @@ -120,7 +118,7 @@ B: box "Step 2" rad 5px fit wid 170% ht 170%

</details>

<!--Result:-->
{/* Result: */}
![output](assets/pikchr_explicit.svg)

## Common settings
Expand Down Expand Up @@ -156,7 +154,7 @@ D: box "Path B" rad 5px fit wid 170% ht 170%

</details>

<!--Result:-->
{/* Result: */}
![output](assets/pikchr_branch.svg)

**Tip:** For tree/hierarchy diagrams, prefer left-to-right layout (root on left, children branching right). This reads more naturally and avoids awkward vertical stacking.
Expand All @@ -176,7 +174,7 @@ text "label below" at (A.x, A.y - 0.4in)

</details>

<!--Result:-->
{/* Result: */}
![output](assets/pikchr_labels.svg)

## Reference
Expand Down
2 changes: 0 additions & 2 deletions docs/agents/index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# For Agents

├── testing.md (docs about writing tests)
├── docs (these are docs about writing docs)
│   ├── codeblocks.md
Expand Down
2 changes: 0 additions & 2 deletions docs/agents/style.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# Code Style Guidelines

Rules for writing code in dimos. These address recurring issues found in code review.

## No comment banners
Expand Down
2 changes: 0 additions & 2 deletions docs/agents/testing.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# Testing Guidelines

Rules for writing tests in dimos. These address recurring issues found in code review.

For grid testing (spec/impl tests across multiple backends), see [Grid Testing Strategy](/docs/development/grid_testing.md).
Expand Down
3 changes: 3 additions & 0 deletions docs/assets/dimensional-logo-master-transparent.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 0 additions & 2 deletions docs/capabilities/agents/readme.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# Agents

LLM agents run as native DimOS modules. They subscribe to camera, LiDAR, odometry, and spatial memory streams and they control the robot through skills.

## Architecture
Expand Down
2 changes: 0 additions & 2 deletions docs/capabilities/manipulation/adding_a_custom_arm.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# How to Integrate a New Manipulator Arm

This guide walks through integrating a new robot arm with DimOS, from writing the hardware adapter to creating blueprints for planning and control.

## Architecture Overview
Expand Down
2 changes: 0 additions & 2 deletions docs/capabilities/manipulation/openarm_integration.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# OpenArm Integration

Guide for running the **OpenArm** — an open-source bimanual 7-DOF research arm built from Damiao DM-J quasi-direct-drive motors — under the dimos manipulation + control stack.

**If you're standing in front of the hardware and just want to run it, skip to [Quick start](#quick-start).**
Expand Down
2 changes: 0 additions & 2 deletions docs/capabilities/manipulation/readme.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# Manipulation

Motion planning and teleoperation for robotic manipulators. Uses Drake for physics simulation and Meshcat for 3D visualization.

## Quick Start
Expand Down
10 changes: 6 additions & 4 deletions docs/capabilities/memory/index.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<details><summary>Python</summary>
<details>
<summary>Python</summary>

```python fold session=mem output=none
import pickle
Expand All @@ -23,7 +24,7 @@ for name, stream in store.streams.items():
print(stream.summary())
```

<!--Result:-->
{/* Result: */}
```
Stream("color_image"): 4164 items, 2025-12-26 11:09:08 — 2025-12-26 11:14:00 (292.5s)
Stream("color_image_embedded"): 267 items, 2025-12-26 11:09:12 — 2025-12-26 11:14:00 (288.4s)
Expand Down Expand Up @@ -160,15 +161,16 @@ drawing.add(matches)
drawing.to_svg("assets/embedding_focused.svg")
```

<!--Result:-->
{/* Result: */}
```
Stream("color_image_embedded") | vector_search(k=30)
08:19:54.129 [inf][dimos/mapping/voxels.py ] VoxelGrid using device: CUDA:0
```

![output](assets/embedding_focused.svg)

<details><summary>Python</summary>
<details>
<summary>Python</summary>

```python fold session=mem
import matplotlib
Expand Down
4 changes: 2 additions & 2 deletions docs/capabilities/memory/plot.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ plot.add(plantness_similarity,
plot.to_svg("assets/plot_plantness.svg")
```

<!--Result:-->
{/* Result: */}
```
Stream("color_image_embedded") | vector_search() | order_by(ts)
Stream("materialize")
Expand Down Expand Up @@ -241,7 +241,7 @@ m = mosaic(semantic_peaks.map_data(lambda obs: moondream.query_detections(obs.da
m.data.save("assets/plants_auto.png")
```

<!--Result:-->
{/* Result: */}
```
14:59:33.042 [inf][dimos/mapping/voxels.py ] VoxelGrid using device: CUDA:0
t= 14.1s score=0.224 prominence=0.031
Expand Down
6 changes: 2 additions & 4 deletions docs/capabilities/navigation/native/index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# Go2 Non-ROS Navigation

<img src="assets/noros_nav.gif" width="100%">

The Go2 navigation stack runs entirely without ROS. It uses a **column-carving voxel map** strategy: each new LiDAR frame replaces the corresponding region of the global map entirely, ensuring the map always reflects the latest observations.
Expand Down Expand Up @@ -37,7 +35,7 @@ text "Twist" italic at (M4.x, Nav.s.y - 0.45in)

</details>

<!--Result:-->
{/* Result: */}
![output](assets/go2nav_dataflow.svg)
## Pipeline Steps

Expand Down Expand Up @@ -177,5 +175,5 @@ unitree_go2 = autoconnect(

to_svg(unitree_go2, "assets/go2_blueprint.svg")
```
<!--Result:-->
{/* Result: */}
![output](assets/go2_blueprint.svg)
2 changes: 0 additions & 2 deletions docs/capabilities/navigation/nav_stack.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# Nav Stack

A modular navigation stack for autonomous robot navigation: terrain classification, obstacle avoidance, global path planning, local trajectory selection, and loop-closure-corrected mapping — composed as Blueprint modules.

Good fit when you have a lidar-equipped robot and need end-to-end autonomy: feed it a registered point cloud and odometry, and it produces velocity commands. No ROS — modules communicate over DimOS streams (LCM/SHM).
Expand Down
1 change: 0 additions & 1 deletion docs/capabilities/navigation/readme.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# Navigation
Note: in the future these will be merged into one system.

## Nav Stack
Expand Down
2 changes: 0 additions & 2 deletions docs/capabilities/perception/readme.md
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
# Perception

## Detections
7 changes: 3 additions & 4 deletions docs/development/docker.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
# Docker Images

Dimos uses parallel Docker image hierarchies for ROS and non-ROS builds, allowing you to choose the environment that fits your use case.

## Image Hierarchy

<details><summary>Pikchr</summary>
<details>
<summary>Pikchr</summary>

```pikchr fold output=assets/docker-hierarchy.svg
color = white
Expand Down Expand Up @@ -40,7 +39,7 @@ text "same dockerfiles" at (D.e.x + 1.2in, D.e.y + 0.4in)

</details>

<!--Result:-->
{/* Result: */}
![output](assets/docker-hierarchy.svg)


Expand Down
2 changes: 0 additions & 2 deletions docs/development/grid_testing.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# Grid Testing Strategy

Grid tests run the same test logic across multiple implementations or configurations using pytest's parametrize feature.

## Case Type Pattern
Expand Down
Loading
Loading