1
0
ergogen/roadmap.md

121 lines
4.8 KiB
Markdown
Raw Normal View History

2021-07-18 04:17:20 -07:00
# Ergogen TODO
## CLI
### Major
2022-04-05 11:35:12 -07:00
- key-level access to full anchors
- this could provide extra variables `padding`, `spread`, `splay` for custom layout purposes
- make row anchors cumulative, too (like columns), so fingers arcs and other edits can happen
- remove `_default` suffix for only column keys (like for single point zones)
2022-01-18 13:07:34 -08:00
- Restructure pcb point/footprint filtering
- Use the same `what`/`where` infrastructure as outlines
- Collapse params/nets/anchors into a single hierarchy from the user's POV
- Add per-footprint mirror support
- Add some way for footprints to be able to "resist" the mirroring-related special treatment of negative X shift, rotation, etc.
- Merge, generalize, uniform-ize and externalize footprints!
- Separate npm package for dependency, onnx-like incremental opset versioning
- Template for creating them, built-in variables they can use, documentation, external links, etc.
2022-04-05 11:35:12 -07:00
- Add access to whole set of points + filtering logic, so they can implement their own connection logic as well maybe (see daisy chaining)
2021-11-27 12:04:30 -08:00
- Also considering how (or, on which layer) they define their silks, universal mirroring behaviour, etc.
2022-01-18 13:07:34 -08:00
- Rename class to designator in this context (https://en.wikipedia.org/wiki/Reference_designator#Designators)
- Include raw kicad footprint integrations
- pull torik's script to be able to convert raw kicad footprints into positionable ergogen ones
- have a `dummy` footprint which can just be updated from schematic
2021-11-27 12:04:30 -08:00
2021-07-18 04:17:20 -07:00
### Minor
2021-12-18 13:15:57 -08:00
- 3D orient for cases
2021-12-25 12:22:37 -08:00
- Post-process anchor for global (post-mirror!) orient/shift/rotate for everything
2022-01-18 13:07:34 -08:00
- Even more extreme anchor stuff
- Checkpoints, intersects, distances, weighted combinations?
2021-11-27 12:04:30 -08:00
- Allow both object (as well as arrays) in multiple anchor refs
2021-07-18 04:17:20 -07:00
- SVG input (for individual outlines, or even combinations parsed by line color, etc.)
2021-11-27 12:04:30 -08:00
- And once that's done, possibly even STL or other input for cases or pcb renders
- Support text silk output to PCBs (in configurable fonts, through SVG?)
- Maybe a partial markdown preprocess to support bold and italic?
2021-07-18 04:17:20 -07:00
- Look into gr_curve to possibly add beziers to the kicad conversion
2021-11-27 12:04:30 -08:00
- Support curves (arcs as well as Béziers) in polygons
2021-07-18 04:17:20 -07:00
- Add snappable line footprint
2022-01-18 13:07:34 -08:00
- Figure out a manual, but still reasonably comfortable routing method directly from the config
2021-11-27 12:04:30 -08:00
- Add filleting syntax with `@`?
- Eeschema support for pcbs
- Generate ZMK shield from config
- Export **to** KLE?
2022-01-18 13:07:34 -08:00
- Include 3D models paths in kicad output for visualization
- Also, provide 3D models for built-in footprints
2021-12-15 11:35:15 -08:00
- Look into kicad 5 vs. 6 output format
- Update json schema and add syntax highlight to editors
2022-01-18 13:07:34 -08:00
- Support different netclasses
2022-04-05 11:35:12 -07:00
- `round`, `pointy` and `beveled` symbolic constants for expand joint types
- also, string shorthands like `3)`, `5>` and `10]`
2021-07-18 04:17:20 -07:00
### Patch
2022-02-27 10:10:02 -08:00
- YAML lib v4 update - breaking changes in how undefined is handled!
- Prevent double mirroring (see discord "mirror_mirror_")
2022-01-16 11:36:19 -08:00
- Check unexpected keys at top level, too
2021-11-27 12:04:30 -08:00
- Better error handling for the fillet option?
2021-07-18 04:17:20 -07:00
- Integration and end2end tests to get coverage to 100%
2022-01-18 13:07:34 -08:00
- Add custom fillet implementation that considers line-line connections only?
2022-04-05 11:35:12 -07:00
- Empty nets should be allowed (to mean unconnected)
2021-07-18 04:17:20 -07:00
## WEBUI
### Major
2021-11-27 12:04:30 -08:00
- Change over to Cache's live preview implementation
2021-12-15 11:35:15 -08:00
- Add missing KLE functionality
- Create browserified version of semver lib
2022-01-18 13:07:34 -08:00
- Or at least a shim with a console warning
- Visualizing multiple outlines at once, with different colors
2021-11-27 12:04:30 -08:00
2021-07-18 04:17:20 -07:00
### Minor
- Propagate log output from the ergogen module
- Attempt to auto-compile (if inactive for n secs, or whatever)
- Support saving to gists
- Add kicad_pcb visualization as well
2022-01-18 13:07:34 -08:00
- Get dropdown examples from a separate repo
2021-07-18 04:17:20 -07:00
- Expand the config dropdown with opensource stuff: corne, lily, ergodox, atreus...
### Patch
2022-01-18 13:07:34 -08:00
- Streamline (and document) an update pipeline
- Add puppeteer tests
2021-07-18 04:17:20 -07:00
## DOCS
- n00b tutorials
- With a progression of increasingly complex steps
- And lots of illustrations!
- Complete reference
2022-01-18 13:07:34 -08:00
- Some known deficiencies:
2021-07-18 04:17:20 -07:00
- Units separated to their own block at the front
- Key-level `width` and `height` are supported during visualization
- This key-level example should probably be added from discord: https://discord.com/channels/714176584269168732/759825860617437204/773104093546676244
2021-07-18 07:26:30 -07:00
- Change outline fields to have their full anchor support documented
- Mention the ability to opt out of gluing!
- Key-level defaults are based around u's, not 19!
2021-07-18 04:17:20 -07:00
- Contribution guidelines
2022-01-18 13:07:34 -08:00
- Include test commands (npm test, npm run coverage, --what switch, --dump switch)
2021-07-18 04:17:20 -07:00
- Changelog, Roadmap
- A public catalog of real-life ergogen configs
2022-01-18 13:07:34 -08:00
- Probably could be the same as the separate examples repo for the dropdown
2021-07-18 04:17:20 -07:00