@tscircuit/autorouting-dataset-01 1.0.51 → 1.0.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/README.md +77 -16
  2. package/lib/dataset/circuit200.simple-route.json +1104 -1851
  3. package/lib/dataset/circuit201.simple-route.json +1292 -1286
  4. package/lib/dataset/circuit202.simple-route.json +2777 -1354
  5. package/lib/dataset/circuit203.simple-route.json +1045 -2271
  6. package/lib/dataset/circuit204.simple-route.json +1463 -982
  7. package/lib/dataset/circuit205.simple-route.json +1476 -1705
  8. package/lib/dataset/circuit206.simple-route.json +1536 -1167
  9. package/lib/dataset/circuit207.simple-route.json +2678 -627
  10. package/lib/dataset/circuit208.simple-route.json +840 -1190
  11. package/lib/dataset/circuit209.simple-route.json +1033 -2868
  12. package/lib/dataset/circuit210.simple-route.json +3146 -485
  13. package/lib/dataset/circuit211.simple-route.json +1059 -1998
  14. package/lib/dataset/circuit212.simple-route.json +2523 -788
  15. package/lib/dataset/circuit213.simple-route.json +2673 -976
  16. package/lib/dataset/circuit214.simple-route.json +2632 -2422
  17. package/lib/dataset/circuit215.simple-route.json +960 -3420
  18. package/lib/dataset/circuit216.simple-route.json +2262 -592
  19. package/lib/dataset/circuit217.simple-route.json +805 -1504
  20. package/lib/dataset/circuit218.simple-route.json +832 -1480
  21. package/lib/dataset/circuit219.simple-route.json +3306 -143
  22. package/lib/dataset/circuit220.simple-route.json +1731 -2940
  23. package/lib/dataset/circuit221.simple-route.json +977 -786
  24. package/lib/dataset/circuit222.simple-route.json +1045 -1868
  25. package/lib/dataset/circuit223.simple-route.json +1293 -1600
  26. package/lib/dataset/circuit224.simple-route.json +3376 -829
  27. package/lib/dataset/circuit225.simple-route.json +2779 -1213
  28. package/lib/dataset/circuit226.simple-route.json +1281 -339
  29. package/lib/dataset/circuit227.simple-route.json +1459 -361
  30. package/lib/dataset/circuit228.simple-route.json +1069 -1258
  31. package/lib/dataset/circuit229.simple-route.json +2382 -332
  32. package/lib/dataset/circuit230.simple-route.json +1269 -65
  33. package/lib/dataset/circuit231.simple-route.json +3973 -409
  34. package/lib/dataset/circuit232.simple-route.json +2652 -437
  35. package/lib/dataset/circuit233.simple-route.json +3605 -402
  36. package/lib/dataset/circuit234.simple-route.json +834 -2984
  37. package/lib/dataset/circuit235.simple-route.json +1227 -658
  38. package/lib/dataset/circuit236.simple-route.json +1214 -375
  39. package/lib/dataset/circuit237.simple-route.json +3915 -1596
  40. package/lib/dataset/circuit238.simple-route.json +2358 -1914
  41. package/lib/dataset/circuit239.simple-route.json +1482 -2276
  42. package/lib/dataset/circuit240.simple-route.json +1082 -2116
  43. package/lib/dataset/circuit241.simple-route.json +1613 -1689
  44. package/lib/dataset/circuit242.simple-route.json +4775 -1620
  45. package/lib/dataset/circuit243.simple-route.json +1863 -2131
  46. package/lib/dataset/circuit244.simple-route.json +1070 -1211
  47. package/lib/dataset/circuit245.simple-route.json +1308 -1468
  48. package/lib/dataset/circuit246.simple-route.json +4411 -1843
  49. package/lib/dataset/circuit247.simple-route.json +1517 -179
  50. package/lib/dataset/circuit248.simple-route.json +1475 -784
  51. package/lib/dataset/circuit249.simple-route.json +1032 -1412
  52. package/lib/dataset/circuit250.simple-route.json +3693 -311
  53. package/lib/dataset/circuit251.simple-route.json +3294 -2584
  54. package/lib/dataset/circuit252.simple-route.json +1091 -2861
  55. package/lib/dataset/circuit253.simple-route.json +2386 -226
  56. package/lib/dataset/circuit254.simple-route.json +806 -1248
  57. package/lib/dataset/circuit255.simple-route.json +1283 -1394
  58. package/lib/dataset/circuit256.simple-route.json +1772 -2229
  59. package/lib/dataset/circuit257.simple-route.json +1305 -677
  60. package/lib/dataset/circuit258.simple-route.json +1195 -1375
  61. package/lib/dataset/circuit259.simple-route.json +1118 -2345
  62. package/lib/dataset/circuit260.simple-route.json +2180 -203
  63. package/lib/dataset/circuit261.simple-route.json +2370 -129
  64. package/lib/dataset/circuit262.simple-route.json +2156 -968
  65. package/lib/dataset/circuit263.simple-route.json +1049 -2638
  66. package/lib/dataset/circuit264.simple-route.json +3579 -2222
  67. package/lib/dataset/circuit265.simple-route.json +1439 -407
  68. package/lib/dataset/circuit266.simple-route.json +2304 -240
  69. package/lib/dataset/circuit267.simple-route.json +2499 -305
  70. package/lib/dataset/circuit268.simple-route.json +1902 -288
  71. package/lib/dataset/circuit269.simple-route.json +1619 -683
  72. package/lib/dataset/circuit270.simple-route.json +3233 -1863
  73. package/lib/dataset/circuit271.simple-route.json +790 -1315
  74. package/lib/dataset/circuit272.simple-route.json +1433 -344
  75. package/lib/dataset/circuit273.simple-route.json +1559 -2867
  76. package/lib/dataset/circuit274.simple-route.json +1643 -332
  77. package/lib/dataset/circuit275.simple-route.json +2741 -846
  78. package/lib/dataset/circuit276.simple-route.json +1002 -1495
  79. package/lib/dataset/circuit277.simple-route.json +2478 -582
  80. package/lib/dataset/circuit278.simple-route.json +769 -2963
  81. package/lib/dataset/circuit279.simple-route.json +1606 -1032
  82. package/lib/dataset/circuit280.simple-route.json +6263 -587
  83. package/lib/dataset/circuit281.simple-route.json +1815 -2230
  84. package/lib/dataset/circuit282.simple-route.json +1106 -248
  85. package/lib/dataset/circuit283.simple-route.json +3301 -546
  86. package/lib/dataset/circuit284.simple-route.json +1905 -2020
  87. package/lib/dataset/circuit285.simple-route.json +2939 -1901
  88. package/lib/dataset/circuit286.simple-route.json +1777 -303
  89. package/lib/dataset/circuit287.simple-route.json +1795 -280
  90. package/lib/dataset/circuit288.simple-route.json +2073 -1786
  91. package/lib/dataset/circuit289.simple-route.json +1151 -1943
  92. package/lib/dataset/circuit290.simple-route.json +930 -1122
  93. package/lib/dataset/circuit291.simple-route.json +1362 -1389
  94. package/lib/dataset/circuit292.simple-route.json +4265 -709
  95. package/lib/dataset/circuit293.simple-route.json +3428 -957
  96. package/lib/dataset/circuit294.simple-route.json +2088 -409
  97. package/lib/dataset/circuit295.simple-route.json +2486 -315
  98. package/lib/dataset/circuit296.simple-route.json +1485 -256
  99. package/lib/dataset/circuit297.simple-route.json +2816 -647
  100. package/lib/dataset/circuit298.simple-route.json +921 -1399
  101. package/lib/dataset/circuit299.simple-route.json +1107 -3000
  102. package/package.json +1 -1
package/README.md CHANGED
@@ -1,24 +1,85 @@
1
1
  # autorouting-dataset-01
2
2
 
3
- A set of tscircuit problems to benchmark autorouting (currently 16 circuits in `lib/`).
3
+ Benchmark dataset and tooling for evaluating autorouters against a shared set of `tscircuit` board layouts.
4
4
 
5
- ## Problems in this repo
5
+ The repository currently publishes 205 generated `SimpleRouteJson` scenarios from the `lib/dataset/` package entrypoint. Scenario IDs are intentionally sparse: source circuits are numbered, but some are ignored or do not produce dataset output.
6
6
 
7
- 1. Bootstrap `tsci init`
8
- 2. Generate TSX files use footprint strings (can have scripts to generate, problems just need to be varied) (No overlapping components etc.)
9
- 3. Script that generates sample001.srj.json, sample002.srj.json
10
- 4. Literally publish to npm, and use for benchmarks inside autorouter repo
7
+ ## What is in this repo
11
8
 
12
- ## Progression of stuff
9
+ - `lib/circuit/`: source TSX circuit definitions.
10
+ - `lib/dataset/`: generated `*.simple-route.json` benchmark scenarios and `index.js` exports.
11
+ - `fixtures/preview.fixture.tsx`: local preview page for browsing SRJ scenarios.
12
+ - `lib/cli/`: CLI for running an autorouter implementation against the dataset.
13
+ - `scripts/create-dataset/`: dataset generation from `lib/circuit/`.
14
+ - `scripts/run-benchmark/`: benchmark execution and HTML report generation.
13
15
 
14
- 1. Get 200 problems
15
- 2. Convert 200 problems to simple route json
16
- 3. Run against every pipeline, and report completion %, inside a file. Check for fatal DRC errors. (Completed 43%, DRC Pass 30%)
16
+ ## Install
17
17
 
18
- | Pipeline | Completed | DRC Pass | Avg Time per Circuit |
19
- | -------- | --------- | -------- | ----- |
20
- | `AutoroutingPipeline2` | 43% | 30% | 5s |
21
- | `AutoroutingPipeline4_HyperGraphPortPoint` | 50% | 30% | 4s |
18
+ ```bash
19
+ bun install
20
+ ```
22
21
 
23
- 4. Script for generating benchmark against all pipelines
24
- 5. Script for generating for a single pipeline (allows comparing)
22
+ ## Local development
23
+
24
+ Run the preview/dev environment:
25
+
26
+ ```bash
27
+ bun run dev
28
+ ```
29
+
30
+ Open the preview fixture to inspect generated scenarios from `lib/dataset/`.
31
+
32
+ ## Dataset generation
33
+
34
+ Generate the dataset from the circuit files listed in `tscircuit.config.json`:
35
+
36
+ ```bash
37
+ bun scripts/create-dataset/index.ts
38
+ ```
39
+
40
+ Generate a single circuit:
41
+
42
+ ```bash
43
+ bun scripts/create-dataset/index.ts lib/circuit/circuit001.tsx
44
+ ```
45
+
46
+ This writes `*.simple-route.json` files into `lib/dataset/` and refreshes `lib/dataset/index.js`.
47
+
48
+ ## Benchmark CLI
49
+
50
+ Build the CLI bundle:
51
+
52
+ ```bash
53
+ bun run build:cli
54
+ ```
55
+
56
+ Run a benchmark against an autorouter export:
57
+
58
+ ```bash
59
+ autorouting-dataset-runner <autorouter-path> [solver-name]
60
+ ```
61
+
62
+ Useful options:
63
+
64
+ - `--scenario-limit <count>`: run only part of the dataset.
65
+ - `--output <path>`: write the HTML report to a custom location.
66
+
67
+ The CLI writes benchmark reports into `results/` by default.
68
+
69
+ ## Quality checks
70
+
71
+ Run formatting/linting checks:
72
+
73
+ ```bash
74
+ bun run check
75
+ ```
76
+
77
+ Run tests:
78
+
79
+ ```bash
80
+ bun test
81
+ ```
82
+
83
+ ## Publishing
84
+
85
+ The published package entrypoint is `lib/dataset/index.js`, which re-exports every generated scenario for downstream benchmark consumers.