Appearance
Code Debt --- Paid
- cannot edit Z in 2D
- movement in the z axis seems to be disabled
- i can adjust position in x or in y, but not z
- movement in the z axis seems to be disabled
- scene tumble in 2D is very very very slow
- grid!
- add glow to + buttons
- v scroll appears a bit too early (everything still fits)
- replace _ with space in UI, restore it internally
- insert -> not write .l into inserted child's l formulas
- test: add a 2-drawar cabinet to wacka
- bring the [[working features]] table up to date
- add a sep
- below att/ang/rep set control in p selected
- above show constants
- selecting often fails
- rename test -> hit_test
- convert Stores into a class
- ability to export/import to/from file
- new children spontaneously appear
- steppers hop up and down in build notes
- convert Orientation functions into a class
- SO should use its internal id for hierarchy/formulas
- add child should apply to current selection
- bug: click on button -> selects root
- add new child -> wrong dimensions
- algorithm: using smallest length of parent, divide that in half, use that for all dimensions
- assure that the child axes all align with the parent's axes
- after adding, select the parent
- cruft
- consolidate redundancy
- simplify over-engineering
- remove inconsistencies
- ameliorate structural risks
- delete selected SO
- hover/click should hit the front most SO
- hide occluded dimensionals
- performance analysis -- app is VERY unresponsive
- build number button -> bottom left of canvas
- remove "Details" label from details
- background color picker -> details same row as edge color, and make it the left most
- add details hamburger (copy from ws project)
- use hit target for ALL buttons and segments
- research scene model
- move all Angle and Polar code from Coordinates to Angle
- including thin delegates
- pac: combine all *Rect interfaces
- find all the build numbers (milestones) and dates -> build notes
- rebuild SO with 2 single-axis rotations
- from which, quaternion is derived
- ABANDON: see through -> all, add "back"
- organize architecture notes
- version 4: attr serial -> orig, ext, len, angle
- interpretation -> wait until approved
- delete -> delete selected AND its entire subtree of SO
- integrate [[simplicity]] -> [[workflow]]
- [[17.library]]
- get claude vscode == plugin
- tumble ALWAYS applies to root SO
- OPTION tumble -> applies to selected SO
- values in attr tables should be offsets, not absolutes
- choose an SO (buttons at top of graph) -> select most front facing face
- as root tumbles -> update selection to select (possibly different) most front facing face
- save button should use SO's name for file name
- remove all children button should also remove all sd constants that are no longer referenced
- rename standard dimensions -> user constants
- not all user constants got removed by delete all children
- verify that those that remain are NOT referenced !!! but do NOT remove them
- debug delete all children
- hover -> enabled cells
- pac: in all code files, use tabs that are 4 (not 2) spaces
- show computed count (not funky equation)
- segmented control attributes / repeater (only appears for repeaters or on clicking repeat)
- when resizing root change = 2 times mouse drag
- change "selection" to "smart object" and D_Selection -> D_Smart_Object
- move instructions (above) for configuring repeaters -> mono/di/notes/user manual/repeaters.md
- rename list -> hierarchy
- backward compatibility -- describe current design reading a file that is v1 → [[di/notes/architecture/core/migration|migration
- preferences
- move units system button to top far right
- move reset button to bottom right
- separator directly above line thickness slider
- red dots for occluded and disabled
- set_invariant synced length from raw .value instead of get_bound(), corrupting child SO geometry
- BUG: open the drawer from the library. selected the front SO. click the cross box in row d. the correct formula appeared (Y - y) with the formula for Y blanked, the values unchanged. the drawing looked fine. THEN, check the cross box in row Y. the value for y changed (to a large negative number, and the value for Y to an even larger negative number) and the drawing not so nice. explain
- row span for root disallowed formulas and "s" values (they are always 0)
- details rename banners -> parts, selected parts (from assembly and selection)
- re-enable stretching origin (for any given axis) of root
- -> by adjusting length such that end remains fixed (for that axis)
- dragging the end point -- disallow making the length negative -> at the moment of length == 0, switch to dragging the start point
- the root face selection dots that are red -> blue
- cannot insert stretch into a new SO
- was working
- click + in library banner
- option click on stretch in library
- red dots appear on hover over nothing
- relaunch stretch appears
- always draw the root's bottom rect (faint stroke = grid's selected SO stroke)
- resizing the window makes the drawing blink a lot. surely it does NOT need to re-render, only shift what is already rendered?
- straighten & orientation controls -> favor bottom at bottom OR front at bottom
- select root SO on click a library item (replaces the root) AND on launch if nothing is currently selected
- shrink to fit broken
- relaunch increases depth much farther than farthest SO
- fix:
set_boundon compiled attrs stored absolute value;get_boundadded parent offset again (double-count)
- fix:
- enhancements moved to [[7.edit.drags]] § Enhancements
- relaunch increases depth much farther than farthest SO
- rewrite rotation code
- add proposal to [[di/notes/work/done/rotation]] for rotating (leave swapping alone)
- manual test fails: rotate drawer -> dreadful
- only some of the children of the rotated SO actually rotate
- put all "<->" on right side of buttons
- guide files:
- rename versions.md -> references.md
- rename migration.md -> versions.md
- merge enlarged.algebra.md into notes/architecture/core/algebra.md
- remove cruft
- algebra cannot parse ".l - top_drawer.l"
- constants -> values
- the invariant formulas are distracting. hide them
- rename user constants -> givens
- [[version.9]] portable format
- file name
- take root object name it
- no underscore (-> space) in them
- cyclic formula refs -> default to 0
- want: "capture the last user choice"
- a new kind of idea: "these two are the same"
- ref a constant
- drag does not update the constant
- ref a constant
- invert the order of the breadcrumb buttons
- add another col to attr table before first col: s, l, e
- change the order of axis rotations (eg y then x)
- sphere symmetry bug
- UX to reorder axes
- show the current rotation order
- new column with a down pointing triangle
- add action to click ->
- buttons with the order
- swap first two
- swap last two
- swap first and last
- permutation
- three things taken three at a time
- nine buttons, ick
- after drag, mouse up -> repositions / jumps / unintuitive / unexpected / feels unreliable & inconsistent
- duplicate button -> recursive
- visible children button -> new column, before eye column
- add "3 of 24" at right of edit title when not showing parts
- move to left of title input, when not showing parts
- add new first column to parts table, for sibling number, when showing parts
- alter the text of the hide-show toggle in the parts table title row
- show / hide xxx parts (xxx = total number of SOs, not including clones)
- The count of non-clone parts is:
$w_all_sos.filter(s => !is_clone(s, $w_all_sos, $w_tick)).length. I also need to subtract 1 for the root (since the root is not really a "part" users think of). Let me check if the parts table shows the root.
- in the root row of the parts table, make the first eyeball cell blank (root always shows children)
- hierarchal triangles
- larger
- generational -> each click hides a generation, depth first
- click computes the deepest, then reveals (OPTION hides) those
- triangle points right only for all hidden
- when children are hidden -> show number of progeny in place of hyphen
- move "factory reset" and "reinstall" to their respective glow banner, at the left, without moving the title
- layout of separators needs larger/uniform gaps
- increase font size for face labels
- hover color
- lines
- lines fatter and colored red
- hue shift from lines color
- lines
- redo for undo
- cross is too faint in attributes table
- to convert an SO into a repeater:
- in empty repeat area (SO has no child), add button to add child for template
- identical to SO
- in empty repeat area (SO has no child), add button to add child for template
- edit formula -> immediately recompute value
- parent is-visible eyeball -> toggles both self and children
- eliminate position/size columns from parts table
- [[16.formulas]]
- stipulations -> tests -> code
- attributes table -> "-" cell -> lock (value)
- new implicit 'c' -> exact center between start and end
- add a new stipulation and new tests for givens
- givens can be locked. locked givens cannot be target of reverse propagation
- lock ignored on givens AND attributes
- move scaling slider to controls. layout for:
- desktop: two control rows:
- first row same as current
- second row guides slider horizontal left justified, scale right justified
- mobile: two rows:
- first has hamburger,
- desktop: two control rows:
- controls have too much separation
- v scroll in details -> update hit rects
- parts table
- drag and drop
- collapse parts tree not stuck on selected -> select the collapsed SO
- bring guides up to date
- launch with editing enabled and "straightening" magnet turned off
- add screenshots of first steps
- analyze how ws reads and captures query strings
- add that capability to managers/Configuration.ts
- query strings "clear preferences"
- move the App on mount code -> Configuration "configure_css"
- rename user manual -> reference guide
- create new folder "user guide"
- move first.steps into it
- update index
- incorporate user guide into app
- move md files and images into /src
- "?" button in lower right corner of graph
- stipulations <-> code
- distribute -> components?
- help
- move reference guide -> src/manual
- keep hamburger visible
- hamburger -> sidebar visibility toggle
- new preferences`
- hamburger help visibility
- deploy help page id in preferences so revisit help goes to last-visited help content
- white thumbs on all sliders
- click plus button in parts banner -> opens (if closed), selects new part
- do not create a child if selected SO is a repeater or a clone
- hide plus button in parts banner when selected SO is a repeater or a clone
- ability to cut an SO in half
- a "cut" button to the left of the existing "duplicate" button
- cut longest (plain length value) dimension
- refuse if two longest dimensions are equal
- show error in status strip
- repeaters -> duplicate the template (so both halves have an identical copy)
- produces two repeaters (each with its own template)
- a clone or a template or any part that has children -> refuse
- hide the cut button
- formulas -> duplicated except on axis being cut
- each half gets a revised formula such that their values are exactly half the original's length on that axis
- leave the invariant formula alone. it is, ahem! invariant
- if the invariant is 'l' alter the 'e' of the original and the 's' of the new, to place them exactly half way
- if the invariant is 's' divide the 'l' in half and set 'e' in the original to be half way
- if the invariant is 'e' divide the 'l' in half and set 's' in the new to be half way
- "half way" means: "alter the formula such that the value is half way"
- if no formula, "compute and set the value to be half way
- each half gets a revised formula such that their values are exactly half the original's length on that axis
- expand "duplicate" helper
- original keeps its current name and the new sibling gets a numeric-suffix name (matching the duplicate routine's naming)
- new half becomes the selected part
- add a separator between
- attributes table and show/hide givens button
- parts table and duplicate button row