PageSourceSearch

https://silongyong.github.io/blog/ariadne.html

html silongyong.github.io collected 2026-10-03 09:57:07 UTC 27,856 bytes, 549 lines download raw bytes

1<!DOCTYPE HTML>
2<html lang="en">
3<head>
4  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5  <meta name="viewport" content="width=device-width, initial-scale=1">
6
7  <!-- Scholarly metadata for Google Scholar and other academic indexers. -->
8  <meta name="citation_title" content="Trajectory Planning without Trajectory Data: A Manifold-Guided Approach">
9  <meta name="citation_author" content="Silong Yong">
10  <meta name="citation_author" content="Anji Liu">
11  <meta name="citation_author" content="Cunxi Dai">
12  <meta name="citation_author" content="Carl Busart">
13  <meta name="citation_author" content="Guanya Shi">
14  <meta name="citation_author" content="Yilun Du">
15  <meta name="citation_author" content="Katia Sycara">
16  <meta name="citation_author" content="Yaqi Xie">
17  <meta name="citation_publication_date" content="2026/05/18">
18  <meta name="citation_pdf_url" content="https://silongyong.github.io/paper/ariadne.pdf">
19  <meta name="citation_fulltext_html_url" content="https://silongyong.github.io/blog/ariadne.html">
20  <meta name="citation_language" content="en">
21  <meta name="description" content="Trajectory planning from state-only data through learned manifold geometry.">
22
23  <title>Ariadne | Silong Yong</title>
24
25  <link rel="stylesheet" type="text/css" href="../stylesheet.css">
26  <link rel="icon" href="../images/icon.png">
27  <style>
28    .blog-container {
29      width: min(100% - 32px, 850px);
30      max-width: 850px;
31      border: 0;
32      border-spacing: 0;
33      border-collapse: separate;
34      margin-right: auto;
35      margin-left: auto;
36      line-height: 1.55;
37      table-layout: fixed;
38    }
39
40    .blog-container table {
41      width: 100% !important;
42      max-width: 100%;
43      table-layout: fixed;
44    }
45
46    .blog-container td {
47      box-sizing: border-box;
48    }
49
50    .blog-content {
51      padding: 20px 28px;
52      width: 100%;
53      max-width: 794px;
54      vertical-align: top;
55      margin-right: auto;
56      margin-left: auto;
57    }
58
59    .header-cell {
60      padding: 2.5% 28px;
61      width: 100%;
62      max-width: 794px;
63      vertical-align: middle;
64      margin-right: auto;
65      margin-left: auto;
66    }
67
68    .title-line {
69      display: block;
70      max-width: 794px;
71      margin: 0 auto;
72      line-height: 1.22;
73    }
74
75    .blog-content p,
76    .blog-content li {
77      font-size: 16px;
78      line-height: 1.6;
79    }
80
81    .blog-content h2 {
82      font-family: 'Lato', Verdana, Helvetica, sans-serif;
83      font-size: 24px;
84      font-weight: 400;
85      margin-top: 36px;
86      margin-bottom: 14px;
87    }
88
89    .blog-content h3 {
90      font-family: 'Lato', Verdana, Helvetica, sans-serif;
91      font-size: 18px;
92      font-weight: 600;
93      margin-top: 28px;
94      margin-bottom: 10px;
95    }
96
97    .subtitle {
98      text-align: center;
99      font-size: 17px;
100      font-style: italic;
101      margin-top: -8px;
102      color: #555;
103    }
104
105    .date {
106      text-align: center;
107      color: #666;
108    }
109
110    .authors {
111      text-align: center;
112      margin: 16px auto 8px auto;
113      max-width: 740px;
114      color: #333;
115    }
116
117    .authors p {
118      margin: 4px 0;
119      font-size: 15px;
120      line-height: 1.5;
121    }
122
123    .affiliations {
124      text-align: center;
125      color: #666;
126      margin: 8px auto 18px auto;
127      max-width: 740px;
128    }
129
130    .affiliations p {
131      margin: 3px 0;
132      font-size: 14px;
133      line-height: 1.45;
134    }
135
136    .paper-meta {
137      display: flex;
138      justify-content: center;
139      gap: 44px;
140      max-width: 460px;
141      margin: 18px auto 0 auto;
142      padding-top: 16px;
143      border-top: 1px solid #ddd;
144    }
145
146    .paper-meta-label {
147      display: block;
148      color: #666;
149      font-size: 13px;
150      margin-bottom: 3px;
151    }
152
153    .paper-meta-value {
154      font-size: 15px;
155    }
156
157    .full-paper-link {
158      font-weight: 600;
159    }
160
161    .figure-placeholder {
162      border: 1px solid #d6d6d6;
163      background: #fafafa;
164      padding: 14px 16px;
165      margin: 24px 0;
166      font-size: 15px;
167      line-height: 1.5;
168    }
169
170    .figure-placeholder strong {
171      font-style: normal;
172      text-decoration: none;
173    }
174
175    .blog-figure {
176      margin: 26px 0;
177      text-align: center;
178    }
179
180    .blog-figure img {
181      display: block;
182      width: 92%;
183      max-width: 760px;
184      margin: 0 auto;
185      border: 0;
186    }
187
188    @media (max-width: 640px) {
189      .blog-figure img {
190        width: 100%;
191      }
192    }
193
194    .blog-figure figcaption {
195      margin-top: 8px;
196      color: #555;
197      font-size: 14px;
198      line-height: 1.45;
199      text-align: left;
200    }
201
202    .callout {
203      border-left: 3px solid #1772d0;
204      padding: 4px 0 4px 16px;
205      margin: 20px 0;
206      color: #333;
207    }
208
209    pre {
210      overflow-x: auto;
211      border: 1px solid #d6d6d6;
212      background: #fafafa;
213      padding: 12px;
214      font-size: 13px;
215      line-height: 1.45;
216    }
217
218    code {
219      font-size: 14px;
220    }
221
222    @media (max-width: 640px) {
223      .blog-content {
224        padding: 20px;
225      }
226
227      .header-cell {
228        padding: 2.5%;
229      }
230
231      .paper-meta {
232        display: block;
233        text-align: center;
234      }
235
236      .paper-meta div + div {
237        margin-top: 12px;
238      }
239    }
240  </style>
241</head>
242
243<body>
244  <table class="blog-container"><tbody>
245    <tr style="padding:0px">
246      <td style="padding:0px">
247        <table style="width:100%;border:0px;border-spacing:0px;border-collapse:separate;margin-right:auto;margin-left:auto;"><tbody>
248          <tr style="padding:0px">
249            <td class="header-cell">
250              <p>
251                <a href="../index.html">Home</a> &nbsp;/&nbsp;
252                <a href="index.html">Blog</a>
253              </p>
254              <p style="text-align:center">
255                <name class="title-line">Can Generative Models Synthesize Trajectories Without Ever Seeing Trajectories?</name>
256              </p>
257              <p class="subtitle">Trajectory planning from state-only data through learned manifold geometry.</p>
258
259              <div class="authors">
260                <p>
261                  Silong Yong<sup>1</sup>,
262                  Anji Liu<sup>2</sup>,
263                  Cunxi Dai<sup>1</sup>,
264                  Carl Busart<sup>3</sup>,
265                  Guanya Shi<sup>1</sup>,
266                  Yilun Du<sup>4</sup>,
267                  Katia Sycara<sup>1</sup>,
268                  Yaqi Xie<sup>1</sup>
269                </p>
270              </div>
271
272              <div class="affiliations">
273                <p><sup>1</sup>Carnegie Mellon University &nbsp;/&nbsp; <sup>2</sup>National University of Singapore</p>
274                <p><sup>3</sup>DEVCOM Army Research Laboratory &nbsp;/&nbsp; <sup>4</sup>Harvard University</p>
275              </div>
276
277              <div class="paper-meta">
278                <div>
279                  <span class="paper-meta-label">Published</span>
280                  <span class="paper-meta-value">May 18, 2026</span>
281                </div>
282                <div>
283                  <span class="paper-meta-label">Full Paper</span>
284                  <span class="paper-meta-value"><a class="full-paper-link" href="../paper/ariadne.pdf">Read PDF &rarr;</a></span>
285                </div>
286              </div>
287            </td>
288          </tr>
289        </tbody></table>
290
291        <table style="width:100%;border:0px;border-spacing:0px;border-collapse:separate;margin-right:auto;margin-left:auto;"><tbody>
292          <tr>
293            <td class="blog-content">
294              <figure class="blog-figure">
295                <img src="figs/001.png" alt="Figure 1: trajectory coverage and generalization">
296                <figcaption>
297                  <strong>Figure 1.</strong> Trajectory-based models can fail on unseen start-goal combinations even when the relevant states are present; state-manifold planning can recover a path without trajectory data.
298                </figcaption>
299              </figure>
300
301              <p>Trajectory planning has a comforting story: collect demonstrations, train a generative model over trajectories, then condition on a start and a goal to sample a path.</p>
302
303              <p>This story has become increasingly compelling as diffusion and flow-based models have moved into robotics. A trajectory is just a sequence. A sequence can be denoised. A denoised sequence can become a plan.</p>
304
305              <p>But there is a quiet fragility hiding inside this formulation: trajectories are not just data points. They are entire paths through a combinatorial space. Demonstrations can cover some paths, but they cannot cover all of them.</p>
306
307              <p>This creates an odd failure mode. A robot may have seen the start. It may have seen the goal. It may even have seen most of the intermediate states required to solve the task. And yet a trajectory model can still fail because it never observed the exact path connecting them.</p>
308
309              <p>Maybe the missing object is not the state space. Maybe the missing object is only the path through it.</p>
310
311              <p>So the question is:</p>
312
313              <div class="callout">
314                <p><strong>Can we plan trajectories without trajectory data?</strong></p>
315              </div>
316
317              <h2>TL;DR</h2>
318
319              <p>Most modern generative planners learn a distribution over trajectories. Here we ask a sharper question: can we do trajectory planning without trajectory data?</p>
320
321              <p>Our answer is to train only on valid states, then recover trajectories using the learned geometry of those states. Missing trajectories does not mean missing states.</p>
322
323              <p>This extends the manifold hypothesis from a descriptive idea into an operational one: if a generative model learns the valid-state manifold, we can probe its local geometry and plan on it.</p>
324
325              <div class="callout">
326                <p><strong>Trajectory planning can emerge from state-only data.</strong></p>
327              </div>
328
329              <p>From a scaling-law perspective, this is a statement about <strong>data utilization</strong>. Trajectory datasets often contain rich state coverage, but trajectory-level training may not use that structure fully. Learning geometry gives us another way to extract planning signal from the data we already have.</p>
330
331              <p>We call the method <strong>Ariadne</strong>, after the mythological figure who gave Theseus a thread to navigate the Labyrinth. The learned state manifold is a kind of labyrinth, and the planner follows geometric cues through it to connect a start and a goal without being handed a demonstrated route.</p>
332
333              <p>Ariadne uses geometric information from a generative model trained on state-only data. It moves toward the goal while repeatedly correcting motion back onto the learned manifold. We validate this in Maze2D, a 6D tabletop robot motion planning task, and a harder DualKUKA setting with two robot arms.</p>
334
335              <h2>Why Trajectory Learning Struggles</h2>
336
337              <p>Generative planning turns planning into conditional generation. A diffusion planner, for example, can denoise an entire trajectory sequence while enforcing a start state, goal state, or other task constraints.</p>
338
339              <p>
339But this reframing changes what must be covered by data.</p>
340
341              <p>If we learn a distribution over states, we need to know which configurations are valid. If we learn a distribution over trajectories, we need to know which <em>ordered chains</em> of configurations are valid. This is a much larger object.</p>
342
343              <p>Imagine a maze. The free cells are states. A trajectory is a path through those cells. A dataset may reveal many valid states without revealing every route between them. A trajectory model can then fail on a new start-goal pairing even when the start, goal, and intermediate states are familiar.</p>
344
345              <p>The same issue appears in robot motion planning. A tabletop robot arm may have many observed collision-free configurations, but demonstrations only sample some motions through them.</p>
346
347              <p>This is the difference between <em>state coverage</em> and <em>trajectory coverage</em>.</p>
348
349              <p>Trajectory coverage is hard because paths compose. Demonstrations inevitably reveal a tiny, biased subset of the feasible trajectory space.</p>
350
351              <p>So when a trajectory model fails on an unseen start-goal pair, the failure may not mean the world is unfamiliar. It may mean the <em>connection</em> was unfamiliar.</p>
352
353              <p>This is the motivating tension: the robot may know the places, but not the route. What if we stopped asking the model to learn routes?</p>
354
355              <h2>A Shift in Perspective</h2>
356
357              <p>Our conceptual move is simple but quite radical:</p>
358
359              <p>Instead of learning the distribution of trajectories, learn the distribution of valid states.</p>
360
361              <p>That is, train a generative model on feasible configurations: free maze positions, collision-free robot states, valid end-effector poses. The model is not told which state came before which. It only learns the shape of the feasible region.</p>
362
363              <p>At first this sounds insufficient. Planning is about going somewhere. A bag of states has no arrows. It has no time. It has no transitions.</p>
364
365              <p>But geometry carries more information than it first appears to.</p>
366
367              <p>If valid states form a structured set, then the shape of that set tells us something about how motion should proceed. In a maze, the free space bends around walls. In robot motion planning, collision-free configurations form a complicated subset of the ambient configuration space. If a path is feasible, it should remain on or near this valid set.</p>
368
369              <p>This is where the manifold intuition enters.</p>
370
371              <p>A manifold is a space that may be globally curved or tangled, but locally looks simple. In robotics, the set of valid states can be thought of similarly: around any valid state, some directions keep you feasible, while others push you into collision or invalidity.</p>
372
373              <p>Planning can then be reframed as:</p>
374
375              <div class="callout">
376                <p><strong>Find a curve from the start to the goal that stays on the learned manifold of valid states.</strong></p>
377              </div>
378
379              <p>The learned state distribution tells us what is valid. Its geometry tells us how to stay valid while moving.</p>
380
381              <p>This is also different from latent interpolation. We are not learning a latent space and hoping that straight lines or geodesics in that latent space decode into feasible motions. Ariadne directly probes the geometry of the data manifold in state space: the local tangent and normal structure of valid states is what guides the planner.</p>
382
383              <p>In that sense, we are pushing the manifold hypothesis one step further. The usual statement is existential: high-dimensional data often concentrates near a lower-dimensional manifold. Here we ask for something more operational: if a generative model has learned that manifold, can we extract enough of its local geometry to plan on it?</p>
384
385              <p>Now the problem becomes constructive: how do we turn geometry into an actual path?</p>
386
387              <h2>How Geometry Becomes Planning</h2>
388
389              <figure class="blog-figure">
390                <img src="figs/002.png" alt="Figure 2: Ariadne method overview">
391                <figcaption>
392                  <strong>Figure 2.</strong> Method overview: straight-line interpolation satisfies endpoints but ignores the manifold; projection restores feasibility; correction-projection preserves endpoint progress.
393                </figcaption>
394              </figure>
395
396              <p>The method is easiest to understand with a toy picture: two points on a curved manifold, say an arc of a circle. The Euclidean straight line satisfies the endpoints, but it cuts through the interior and leaves the manifold. If the manifold represents valid states, this is an invalid plan.</p>
397
398              <p>This is the basic tension: endpoints are easy, feasibility is hard.</p>
399
400              <h3>1. Straight-Line Interpolation Fails</h3>
401
402              <p>The most naive plan is linear interpolation: start at the initial state and move in a straight line to the goal. This satisfies the endpoints exactly, but ignores the shape of the feasible state space. In a maze, the line may go through a wall. In robot motion planning, it may put the arm through an obstacle.</p>
403
404              <p>The straight line knows where to go, but not where it is allowed to be.</p>
405
406              <h3>2. Move, Then Project</h3>
407
408              <p>A natural fix is: move a little toward the goal, then project back to the manifold. The reference direction gives global intent; projection enforces local feasibility.</p>
409
410              <h3>3. Why Endpoint Constraints Break</h3>
411
412              <p>But projection changes the step. Part of the intended motion may be removed because it pointed off the manifold. The corrected step is feasible, but it may make less progress than expected. Over many steps, these small distortions accumulate.</p>
413
414              <p>This creates a tradeoff between local feasibility and global endpoint satisfaction. Projection helps keep each point valid, but it can also distort the accumulated motion needed to arrive at the specified goal.</p>
415
416              <p>A planner that only projects can become a very polite wanderer: always staying on the sidewalk, not always reaching the address.</p>
417
418              <h3>4. Correction-Projection ODE</h3>
419
420              <p>Ariadne addresses this with a correction-projection ODE.</p>
421
422              <p>The important idea is the role of correction. Ariadne accounts for the progress lost during projection, so the path remains tied to the desired start-goal interpolation while still being pulled back onto the learned manifold.</p>
423
424              <p>At each point, the planner asks: what direction should I move so that I both remain feasible and continue making progress toward the endpoint? The reference path supplies intent. The learned manifold supplies feasibility. The correction term keeps the two from drifting apart.</p>
425
426              <h2>Geometry From Generative Models</h2>
427
428              <p>So far, we have assumed access to the manifold geometry. But the model is only trained on valid states. How does a generative model reveal geometry?</p>
429
430              <p>The answer starts with the score function. For a diffusion or score-based model, the score points in the direction where data density increases. If you perturb a data point slightly off the valid set, the score often points back toward the data manifold.</p>
431
432              <p>This gives a first-order notion of the manifold.</p>
433
434              <p>If I am near the valid state manifold, the score tells me which direction is "back." But first-order information is not enough in general. Realistic state manifolds can be lower-dimensional and more complicated, with multiple independent directions that move off the manifold. To project correctly, we need the local normal space, not just one normal vector.</p>
435
436              <p>This is why we go beyond the raw score.</p>
437
438              <figure class="blog-figure">
439                <img src="figs/003.png" alt="Figure 3: score and normal space estimation">
440                <figcaption>
441                  <strong>Figure 3.</strong> A score direction can point back toward the data manifold, but lower-dimensional manifolds require estimating a richer local normal space.
442                </figcaption>
443              </figure>
444
445              <p>The intuition is simple: the score gives a local arrow pointing back toward high-density states. But a single arrow is not enough to describe the shape of the manifold. By looking at how that arrow changes as we move slightly in different directions, the Jacobian or Hessian reveals which directions behave like off-manifold normals and which directions behave like on-manifold tangents.</p>
446
447              <p>You do not need the full differential geometry to understand the algorithm. The generative model is doing two jobs:</p>
448
449              <ol>
450                <li>It learns which states are valid.</li>
451                <li>It provides local geometric signals that tell the planner how to stay valid while moving.</li>
452              </ol>
453
454              <p>That is what makes the state-only setting plausible. The model never observes trajectories, but it learns enough about the shape of the state space to supp
454ort trajectory construction.</p>
455
456              <h2>Does It Actually Work?</h2>
457
458              <p>The empirical question is sharp:</p>
459
460              <p>If we train only on valid states, can the planner generate feasible trajectories for new start-goal pairs?</p>
461
462              <p>We evaluate this in three settings: Maze2D, YAM 6D, and DualKUKA. Across these settings, the model sees feasible states, not demonstrations. At test time, it receives a start-goal pair and constructs a path using the learned geometry.</p>
463
464              <p>The results are best read visually first.</p>
465
466              <h3>Maze2D</h3>
467
468              <p>Maze2D is the cleanest setting for the idea. The valid states are positions in free space; the invalid states are walls. A straight line from start to goal often crosses obstacles, so the planner must bend around the maze structure.</p>
469
470              <figure class="blog-figure">
471                <img src="figs/maze.png" alt="Figure 4: Ariadne planned trajectories in Maze2D">
472                <figcaption>
473                  <strong>Figure 4.</strong> Maze2D qualitative result. The blue line is the straight reference path; the red curve is Ariadne's planned trajectory.
474                </figcaption>
475              </figure>
476
477              <p>The visual story is exactly what we want from the method. The straight reference path provides a crude global direction. Ariadne then warps this path along the learned state manifold, producing a route that follows free space rather than cutting through walls. It was not trained on maze trajectories that tell it how to connect locations.</p>
478
479              <p>This is where the phrase "missing trajectories does not mean missing states" becomes operational. The path may be missing from the dataset, but the free-space structure still leaves a geometric trace.</p>
480
481              <p>Quantitatively, the results show that a state-only model can produce feasible plans while using strictly less supervision than trajectory-trained planners.</p>
482
483              <h3>YAM 6D</h3>
484
485              <p>The next setting increases the dimensionality and moves from toy navigation to robot motion planning. In YAM 6D, a 6-DoF robot arm operates in a tabletop workspace with obstacles. Training data consists only of collision-free states, with no trajectory data and no transition information.</p>
486
487              <p>This is a more demanding test of the manifold view: the feasible set is hidden inside a higher-dimensional representation, and a straight interpolation can easily collide.</p>
488
489              <figure class="blog-figure">
490                <img src="figs/robot_exp.png" alt="Figure 5: Ariadne planned trajectory in YAM 6D">
491                <figcaption>
492                  <strong>Figure 5.</strong> YAM 6D qualitative result. Color indicates task progress from start to goal.
493                </figcaption>
494              </figure>
495
496              <p>The qualitative result shows the planned path routing around obstacles while maintaining feasibility.</p>
497
498              <h3>DualKUKA</h3>
499
500              <p>The DualKUKA environment pushes the idea further. Two 7-DoF robot arms must avoid obstacles and avoid colliding with each other, so feasibility is coupled across both arms.</p>
501
502              <figure class="blog-figure">
503                <img src="figs/qual_dualkuka_hor.png" alt="Figure 6: Ariadne planned trajectory in DualKUKA">
504                <figcaption>
505                  <strong>Figure 6.</strong> DualKUKA qualitative result. Darker colors represent the start, and lighter colors represent the end.
506                </figcaption>
507              </figure>
508
509              <p>We find that Ariadne achieves results comparable to trajectory-learning-based methods in this setting, while not training on trajectory data. The result shows that the geometry of valid states can serve as a useful planning substrate even in higher-dimensional robot motion planning.</p>
510
511              <h2>Bigger Implications</h2>
512
513              <p>The broader implication is that trajectory generation may not always require trajectory-level supervision. If valid state coverage is easier to obtain than expert demonstrations, then state-only learning gives us a weaker-data route to planning: learn the space first, then recover paths from its geometry.</p>
514
515              <p>This suggests a different perspective on scaling laws for trajectory learning. A common response to poor generalization is to collect more trajectories: more demonstrations, longer rollouts, broader offline datasets. But the trajectories we already collect often contain far more state coverage than trajectory-level training fully uses. The bottleneck may not only be data quantity;
515 it may also be <strong>data utilization</strong>.</p>
516
517              <p>By learning the geometry of the valid-state distribution, Ariadne tries to use the structure already present in the data more efficiently. Instead of treating each trajectory as one supervised sequence, we can ask what manifold of feasible states those trajectories reveal, and how much planning behavior can be recovered from that structure.</p>
518
519              <h2>Limitations</h2>
520
521              <p>The most credible version of this idea comes with boundaries. Ariadne plans feasible state sequences; it does not learn full transition dynamics. Contacts, underactuation, torque limits, velocity constraints, and dynamic stability can all matter in real robots.</p>
522
523              <p>The approach also depends on the quality of geometry estimation. If the generative model learns a poor state distribution, or if the score/Jacobian/Hessian signals are noisy, the projection can become unreliable.</p>
524
525              <p>The method also depends on the reference path used during construction. In our experiments, a straight-line reference is often sufficient, but more complex settings may benefit from other parameterizations or imperfect trajectories from another planner.</p>
526
527              <h2>Resources</h2>
528
529              <p><strong>Full Paper:</strong> <a href="../paper/ariadne.pdf">Trajectory Planning without Trajectory Data: A Manifold-Guided Approach &rarr;</a></p>
530
531              <p><strong>Citation:</strong></p>
532
533              <pre><code>@misc{yong2026trajectory,
534  title  = {Trajectory Planning without Trajectory Data: A Manifold-Guided Approach},
535  author = {Yong, Silong and Liu, Anji and Dai, Cunxi and Busart, Carl and Shi, Guanya and Du, Yilun and Sycara, Katia and Xie, Yaqi},
536  year   = {2026},
537  note   = {Preprint},
538  url    = {https://github.com/SilongYong/Ariadne}
539}</code></pre>
540
541              <p>The broader lesson is simple: for trajectory planning, trajectory data may not be the only path to trajectory generation. If valid states already reveal the geometry of the task, then better data utilization can turn state coverage into motion. Scaling planning systems may therefore depend not only on collecting more trajectories, but also on learning how to read more structure from the data we already have.</p>
542            </td>
543          </tr>
544        </tbody></table>
545      </td>
546    </tr>
547  </tbody></table>
548</body>
549</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.