<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Viam Documentation – Sequences</title><link>https://docs.viam.com/tags/sequences/</link><description>Recent content in Sequences on Viam Documentation</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Tue, 29 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://docs.viam.com/tags/sequences/feed.xml" rel="self" type="application/rss+xml"/><item><title>Data: Sequences</title><link>https://docs.viam.com/data/sequences/</link><pubDate>Tue, 29 Sep 2026 00:00:00 +0000</pubDate><guid>https://docs.viam.com/data/sequences/</guid><description>
&lt;p&gt;A sequence marks a time window of data that one machine part captured, so you can train on that window as one example.
It names the part, the start and end times, and the components and methods to include, such as a camera&amp;rsquo;s &lt;code&gt;GetImages&lt;/code&gt; and an arm&amp;rsquo;s &lt;code&gt;JointPositions&lt;/code&gt;.
It also carries tags that describe the whole window, such as &lt;code&gt;pick-success&lt;/code&gt; or &lt;code&gt;demo-3&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Sequences exist to feed &lt;a href="https://docs.viam.com/train/create-a-dataset/" &gt;sequence datasets&lt;/a&gt;, which you train on with a &lt;a href="https://docs.viam.com/train/custom-training-scripts/" &gt;custom training script&lt;/a&gt;.
To follow the whole path from capture to exported training files, see the &lt;a href="https://docs.viam.com/data/sequences-tutorial/" &gt;sequences tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="how-a-sequence-works" class="main-content-heading"&gt;
How a sequence works
&lt;div class="copied" id="copied-how-a-sequence-works" aria-hidden="true"&gt;
&lt;div class="copied-notification" id="copied-how-a-sequence-works-text"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/h2&gt;&lt;p&gt;A sequence is a saved filter over data you already captured, not a copy of it.
When you read a sequence, Viam returns the images and readings that match its part, resources, and time window.
Each sequence belongs to exactly one machine part, though it can include resources on that part&amp;rsquo;s remotes.
This has four consequences:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Data must be captured during the window.&lt;/strong&gt; A sequence only selects data that &lt;a href="https://docs.viam.com/data/capture-sync/capture-and-sync-data/" &gt;data capture&lt;/a&gt; recorded and synced. If capture wasn&amp;rsquo;t running on a resource while the sequence was open, the sequence has nothing from that resource.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deleting data removes it from the sequence, not the sequence itself.&lt;/strong&gt; If you &lt;a href="https://docs.viam.com/data/delete-data/" &gt;delete&lt;/a&gt; images or readings inside the window, they no longer appear in the sequence, but the sequence stays, even if no data is left in it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deleting a sequence keeps its data.&lt;/strong&gt; Deleting a sequence removes only the sequence. The images and readings it selected stay in Viam.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Editing the window changes the contents.&lt;/strong&gt; If you change a sequence&amp;rsquo;s start time, end time, or resources, it selects a different set of data.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A sequence can hold two kinds of data:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Images&lt;/strong&gt;, from the camera methods &lt;code&gt;ReadImage&lt;/code&gt; and &lt;code&gt;GetImages&lt;/code&gt;, or the vision service method &lt;code&gt;CaptureAllFromCamera&lt;/code&gt;. These are the only binary data a sequence accepts. Other binary data, such as point clouds, is rejected. A sequence includes only JPEG and PNG images. Images in other formats, such as depth images, are left out of the sequence and its exports without an error, so a camera that captures only other formats produces a sequence with no images.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Readings&lt;/strong&gt; from any other capture method, such as sensor readings or joint positions, stored as tabular data.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sequence tags label the sequence as a whole.
They are separate from the &lt;a href="https://docs.viam.com/data/tag-data/" &gt;tags on individual images and readings&lt;/a&gt;.
The &lt;code&gt;capture-control&lt;/code&gt; module&amp;rsquo;s &lt;code&gt;start_capture&lt;/code&gt; command sets both to the same values, and its &lt;code&gt;start_sequence&lt;/code&gt; command sets only the sequence tags.&lt;/p&gt;
&lt;h2 id="where-sequences-fit-in-data-management" class="main-content-heading"&gt;
Where sequences fit in data management
&lt;div class="copied" id="copied-where-sequences-fit-in-data-management" aria-hidden="true"&gt;
&lt;div class="copied-notification" id="copied-where-sequences-fit-in-data-management-text"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/h2&gt;&lt;p&gt;Sequences sit between captured data and training:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Capture.&lt;/strong&gt; The data management service records images and readings from your machine&amp;rsquo;s components. See &lt;a href="https://docs.viam.com/data/capture-sync/capture-and-sync-data/" &gt;Capture and sync data&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mark sequences.&lt;/strong&gt; A capture control sensor on the machine opens and closes sequences while the machine runs. You can also create a sequence afterward, from code, over data you already have.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sync.&lt;/strong&gt; The data manager uploads captured data, and uploads each sequence after it closes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Collect.&lt;/strong&gt; You add sequences to a sequence dataset. See &lt;a href="https://docs.viam.com/train/create-a-dataset/" &gt;Create a dataset&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Export and train.&lt;/strong&gt; You export the dataset as Parquet files, or run a custom training script on it. See &lt;a href="https://docs.viam.com/train/sequence-dataset-format/" &gt;Sequence dataset format&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="when-to-use-a-sequence" class="main-content-heading"&gt;
When to use a sequence
&lt;div class="copied" id="copied-when-to-use-a-sequence" aria-hidden="true"&gt;
&lt;div class="copied-notification" id="copied-when-to-use-a-sequence-text"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/h2&gt;&lt;p&gt;Use a sequence when a training example is a stretch of time, not a single image.
The meaning is in how the images and readings change over the window.
For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Learning from demonstrations.&lt;/strong&gt; Each sequence is one demonstration of a task, with the camera images and arm joint positions from start to finish.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sequence classification.&lt;/strong&gt; Each sequence is one event, tagged with its outcome, such as a successful or failed grasp.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="creating-sequences" class="main-content-heading"&gt;
Creating sequences
&lt;div class="copied" id="copied-creating-sequences" aria-hidden="true"&gt;
&lt;div class="copied-notification" id="copied-creating-sequences-text"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/h2&gt;&lt;p&gt;You can create a sequence as a machine records data, or afterward from data you already captured.&lt;/p&gt;
&lt;h3 id="from-a-running-machine" class="main-content-heading"&gt;
From a running machine
&lt;div class="copied" id="copied-from-a-running-machine" aria-hidden="true"&gt;
&lt;div class="copied-notification" id="copied-from-a-running-machine-text"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/h3&gt;&lt;p&gt;A machine records sequences through a &lt;a href="https://docs.viam.com/data/capture-sync/capture-on-demand/" &gt;capture control sensor&lt;/a&gt;.
The data management service polls the sensor 10 times per second and reads a &lt;code&gt;sequences&lt;/code&gt; list from its readings.
A sequence opens the first time its entry appears in the list, and closes when the entry disappears.
Changing an open entry&amp;rsquo;s tags or resources closes that sequence and opens a new one.
If the sensor&amp;rsquo;s &lt;code&gt;Readings&lt;/code&gt; call fails, every open sequence closes.
After a sequence closes, the data manager uploads it on the next sync.&lt;/p&gt;
&lt;p&gt;You can use the &lt;code&gt;capture-control&lt;/code&gt; module, which opens a sequence when you send it a command, or write your own sensor.
Start with the module.
Write your own sensor only if the machine should decide by itself when to record, or if you need more than one sequence open at a time.&lt;/p&gt;
&lt;p&gt;To record sequences with the &lt;code&gt;capture-control&lt;/code&gt; module:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Add the module&amp;rsquo;s sensor to your machine, list the components and methods to record, and point the data management service at the sensor.
See &lt;a href="https://docs.viam.com/data/capture-sync/capture-on-demand/#add-the-sensor" &gt;Add the &lt;code&gt;capture-control&lt;/code&gt; sensor&lt;/a&gt; and &lt;a href="https://docs.viam.com/data/capture-sync/capture-on-demand/#point-the-data-manager-at-the-sensor" &gt;Point the data manager at the sensor&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;On the sensor&amp;rsquo;s &lt;strong&gt;Test&lt;/strong&gt; section, find &lt;strong&gt;DoCommand&lt;/strong&gt;, and send:&lt;/p&gt;
&lt;pre class="language-json "data-line-offset="0"&gt;
&lt;code&gt;{ &amp;#34;start_capture&amp;#34;: true, &amp;#34;frequency_hz&amp;#34;: 2, &amp;#34;tags&amp;#34;: [&amp;#34;demo-1&amp;#34;] }&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;This starts capture on the listed components at 2 Hz and opens a sequence tagged &lt;code&gt;demo-1&lt;/code&gt;.
If capture is already running, send &lt;code&gt;{&amp;quot;start_sequence&amp;quot;: true, &amp;quot;tags&amp;quot;: [&amp;quot;demo-1&amp;quot;]}&lt;/code&gt; instead, to open the sequence without changing capture.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When the event ends, send &lt;code&gt;{&amp;quot;stop_capture&amp;quot;: true}&lt;/code&gt; to stop capture and close the sequence, or &lt;code&gt;{&amp;quot;stop_sequence&amp;quot;: true}&lt;/code&gt; to close only the sequence.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Open the &lt;strong&gt;DATA&lt;/strong&gt; tab and click &lt;strong&gt;SEQUENCES&lt;/strong&gt;.
The new sequence appears after the next sync.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You can send the same commands from code with &lt;code&gt;DoCommand&lt;/code&gt;, or from a terminal with &lt;code&gt;viam machines part run&lt;/code&gt;.
See the &lt;a href="https://docs.viam.com/data/sequences-tutorial/#4-record-three-sequences" &gt;sequences tutorial&lt;/a&gt; for both.&lt;/p&gt;
&lt;p&gt;To record sequences from your own sensor, see &lt;a href="https://docs.viam.com/data/capture-sync/capture-on-demand/#write-your-own-sensor" &gt;Write your own capture control sensor&lt;/a&gt;.
For every field the sensor can return, see the &lt;a href="https://docs.viam.com/data/reference/#capture-control-sensor-readings" &gt;capture control sensor readings reference&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="from-existing-data" class="main-content-heading"&gt;
From existing data
&lt;div class="copied" id="copied-from-existing-data" aria-hidden="true"&gt;
&lt;div class="copied-notification" id="copied-from-existing-data-text"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/h3&gt;&lt;p&gt;To mark a window of data you already captured, create the sequence from code.
Give it the machine part&amp;rsquo;s ID, the resources and methods to include, and a start and end time.
Tags are optional.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Connect a data client.
See &lt;a href="https://docs.viam.com/data/query-data-from-code/#set-up-a-connection" &gt;Set up a connection&lt;/a&gt; for the setup code.
&lt;code&gt;CreateSequence&lt;/code&gt; only needs an API key with access to the machine part. The other sequence methods, such as &lt;code&gt;ListSequences&lt;/code&gt; and &lt;code&gt;AddSequencesToDataset&lt;/code&gt;, need an organization API key.&lt;/li&gt;
&lt;li&gt;Find the part ID.
At the top of the machine&amp;rsquo;s page, click the &lt;strong&gt;Live&lt;/strong&gt; or &lt;strong&gt;Offline&lt;/strong&gt; status dropdown, then click &lt;strong&gt;Part ID&lt;/strong&gt; to copy it.&lt;/li&gt;
&lt;li&gt;Find when the data was captured.
In the &lt;a href="https://app.viam.com/data/all" target="_blank" &gt;&lt;strong&gt;DATA&lt;/strong&gt; tab&lt;/a&gt;, filter by the machine and the resource, and note the capture times of the first and last images or readings you want.&lt;/li&gt;
&lt;li&gt;Create the sequence.
The window includes data captured exactly at the start and end times.
The examples give both times in UTC. If the times you noted are in another time zone, convert them to UTC first.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="table"&gt;&lt;h4&gt;Python:&lt;/h4&gt;
&lt;div class="tab-content" id="tab-content-tabset-datasequences-2"&gt;
&lt;div id="tabset-datasequences-2-0" class="tab-pane show active" role="tabpanel" aria-labelledby="tabset-datasequences-2-0"&gt;
&lt;pre class="language-python "data-line-offset="0"&gt;
&lt;code&gt;from datetime import datetime, timezone
from viam.proto.app.data import SequenceResourceFilter
sequence_id = await data_client.create_sequence(
part_id=&amp;#34;&amp;lt;PART-ID&amp;gt;&amp;#34;,
resources=[
SequenceResourceFilter(resource_name=&amp;#34;my-camera&amp;#34;, method_name=&amp;#34;GetImages&amp;#34;)
],
sequence_tags=[&amp;#34;demo-1&amp;#34;],
start_time=datetime(2026, 9, 29, 14, 0, 0, tzinfo=timezone.utc),
end_time=datetime(2026, 9, 29, 14, 0, 30, tzinfo=timezone.utc),
)&lt;/code&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4&gt;TypeScript:&lt;/h4&gt;
&lt;div id="tabset-datasequences-2-1" class="tab-pane" role="tabpanel" aria-labelledby="tabset-datasequences-2-1"&gt;
&lt;pre class="language-typescript "data-line-offset="0"&gt;
&lt;code&gt;const sequenceId = await dataClient.createSequence(
&amp;#34;&amp;lt;PART-ID&amp;gt;&amp;#34;,
[{ resourceName: &amp;#34;my-camera&amp;#34;, methodName: &amp;#34;GetImages&amp;#34; }],
[&amp;#34;demo-1&amp;#34;],
new Date(&amp;#34;2026-09-29T14:00:00Z&amp;#34;),
new Date(&amp;#34;2026-09-29T14:00:30Z&amp;#34;),
);&lt;/code&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4&gt;Go:&lt;/h4&gt;
&lt;div id="tabset-datasequences-2-2" class="tab-pane" role="tabpanel" aria-labelledby="tabset-datasequences-2-2"&gt;
&lt;pre class="language-go "data-line-offset="0"&gt;
&lt;code&gt;sequenceID, err := dataClient.CreateSequence(
ctx,
&amp;#34;&amp;lt;PART-ID&amp;gt;&amp;#34;,
[]app.SequenceResourceFilter{
{ResourceName: &amp;#34;my-camera&amp;#34;, MethodName: &amp;#34;GetImages&amp;#34;},
},
[]string{&amp;#34;demo-1&amp;#34;},
time.Date(2026, 9, 29, 14, 0, 0, 0, time.UTC),
time.Date(2026, 9, 29, 14, 0, 30, 0, time.UTC),
)&lt;/code&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;h2 id="view-sequences" class="main-content-heading"&gt;
View sequences
&lt;div class="copied" id="copied-view-sequences" aria-hidden="true"&gt;
&lt;div class="copied-notification" id="copied-view-sequences-text"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Go to the &lt;a href="https://app.viam.com/data/all" target="_blank" &gt;&lt;strong&gt;DATA&lt;/strong&gt; tab&lt;/a&gt; and click &lt;strong&gt;SEQUENCES&lt;/strong&gt;.
The list shows each sequence&amp;rsquo;s time range, machine part, resources, and tags.&lt;/li&gt;
&lt;li&gt;Click a sequence to open it.&lt;/li&gt;
&lt;li&gt;Pick a resource, shown as &lt;code&gt;&amp;lt;resource name&amp;gt; · &amp;lt;method&amp;gt;&lt;/code&gt;, to see its images or readings during the window.&lt;/li&gt;
&lt;li&gt;To work with that resource&amp;rsquo;s data in the rest of the &lt;strong&gt;DATA&lt;/strong&gt; tab, click &lt;strong&gt;View in data gallery&lt;/strong&gt; for images or &lt;strong&gt;View in query page&lt;/strong&gt; for readings.
Each opens the resource&amp;rsquo;s data, filtered to the sequence&amp;rsquo;s part and time window.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To copy a sequence&amp;rsquo;s ID, click the &lt;strong&gt;Sequence actions&lt;/strong&gt; menu on its row and select &lt;strong&gt;Copy sequence ID&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;From code, &lt;code&gt;ListSequences&lt;/code&gt; lists the sequences in an organization and &lt;code&gt;GetSequence&lt;/code&gt; returns one by ID. The Python, TypeScript, and Go SDKs have these methods.
&lt;code&gt;ListSequences&lt;/code&gt; returns one page at a time, 50 sequences by default, with a token for the next page. To list every sequence, pass that token back until it comes back empty.
&lt;code&gt;GetSequenceBinaryData&lt;/code&gt; returns the images inside a sequence, from Python or TypeScript.
There is no API for a sequence&amp;rsquo;s readings. View them in the Viam app, or &lt;a href="https://docs.viam.com/train/create-a-dataset/#export-a-sequence-dataset" &gt;export a sequence dataset&lt;/a&gt;.
See the &lt;a href="https://docs.viam.com/reference/apis/data-client/" &gt;data client API&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="edit-and-delete-sequences" class="main-content-heading"&gt;
Edit and delete sequences
&lt;div class="copied" id="copied-edit-and-delete-sequences" aria-hidden="true"&gt;
&lt;div class="copied-notification" id="copied-edit-and-delete-sequences-text"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/h2&gt;&lt;p&gt;The Viam app can&amp;rsquo;t edit or delete a sequence, and the CLI has no sequence commands.
Use the Python, TypeScript, or Go SDK.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Edit:&lt;/strong&gt; &lt;code&gt;UpdateSequence&lt;/code&gt; changes a sequence&amp;rsquo;s &lt;code&gt;resources&lt;/code&gt;, &lt;code&gt;sequence_tags&lt;/code&gt;, &lt;code&gt;start_time&lt;/code&gt;, or &lt;code&gt;end_time&lt;/code&gt;. Only the fields you list in its field mask change, and the field mask is required.
The Python SDK&amp;rsquo;s &lt;code&gt;update_sequence&lt;/code&gt; builds the field mask for you from the arguments you pass, and raises an error if you pass none of them. Pass &lt;code&gt;sequence_tags=[]&lt;/code&gt; to clear a sequence&amp;rsquo;s tags.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Delete:&lt;/strong&gt; &lt;code&gt;DeleteSequence&lt;/code&gt; deletes a sequence by its ID. The images and readings in its window aren&amp;rsquo;t deleted.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the &lt;a href="https://docs.viam.com/reference/apis/data-client/" &gt;data client API&lt;/a&gt; for each method&amp;rsquo;s parameters.&lt;/p&gt;
&lt;h2 id="add-sequences-to-a-dataset" class="main-content-heading"&gt;
Add sequences to a dataset
&lt;div class="copied" id="copied-add-sequences-to-a-dataset" aria-hidden="true"&gt;
&lt;div class="copied-notification" id="copied-add-sequences-to-a-dataset-text"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/h2&gt;&lt;p&gt;To train on sequences, collect them into a sequence dataset.
On a sequence&amp;rsquo;s detail page, click &lt;strong&gt;Add to dataset&lt;/strong&gt;, or call &lt;code&gt;AddSequencesToDataset&lt;/code&gt; from code.
See &lt;a href="https://docs.viam.com/train/create-a-dataset/" &gt;Create a dataset&lt;/a&gt; to create the dataset, add sequences, and export it.&lt;/p&gt;
&lt;h2 id="limits" class="main-content-heading"&gt;
Limitations
&lt;div class="copied" id="copied-limits" aria-hidden="true"&gt;
&lt;div class="copied-notification" id="copied-limits-text"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Images are the only binary data.&lt;/strong&gt; See &lt;a href="#how-a-sequence-works" &gt;How a sequence works&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A sequence belongs to one machine part.&lt;/strong&gt; It can include resources on that part&amp;rsquo;s remotes. Name them without the remote prefix, for example &lt;code&gt;cam&lt;/code&gt;, not &lt;code&gt;my-remote:cam&lt;/code&gt;. To combine data from several parts, record a sequence on each part and add them all to one dataset.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A crash loses the open sequence.&lt;/strong&gt; If &lt;code&gt;viam-server&lt;/code&gt; stops uncleanly while a sequence is open, the data manager can&amp;rsquo;t tell when the sequence ended. It moves the sequence to &lt;code&gt;failed/sequences/&lt;/code&gt; in the capture directory and doesn&amp;rsquo;t upload it. A normal shutdown closes open sequences so they upload on the next sync.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Editing and deleting need an SDK.&lt;/strong&gt; The Viam app and the CLI can&amp;rsquo;t edit or delete a sequence.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Managed training doesn&amp;rsquo;t accept sequence datasets.&lt;/strong&gt; Train on them with a &lt;a href="https://docs.viam.com/train/custom-training-scripts/" &gt;custom training script&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="next-steps" class="main-content-heading"&gt;
Next steps
&lt;div class="copied" id="copied-next-steps" aria-hidden="true"&gt;
&lt;div class="copied-notification" id="copied-next-steps-text"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.viam.com/data/sequences-tutorial/" &gt;Sequences tutorial&lt;/a&gt;: record three sequences, collect them into a dataset, and export it.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.viam.com/train/create-a-dataset/" &gt;Create a sequence dataset&lt;/a&gt;: collect sequences for training.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.viam.com/data/capture-sync/capture-on-demand/" &gt;Capture on demand&lt;/a&gt;: start and stop capture, and record sequences, with the &lt;code&gt;capture-control&lt;/code&gt; module.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.viam.com/train/sequence-dataset-format/" &gt;Sequence dataset format&lt;/a&gt;: the Parquet files a training script receives.&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>