This is an ongoing list of all TODO items that still need to be dealt with for Naissance to begin exiting beta and moving to an actual release schedule, namely the completion of fundamental vector and raster features.
Undo/Redo should not be supported during this current phase. Wait until after all of this is done to support it as part of a large-scale polishing effort to bring Naissance to release.
Fundamental ETA would require at least 90 days of continuous work on the tasks outlined below, with a latest deadline of Autumn 2025 to get most of it up and running (aiming for a September 2025 deadline), especially since Project Atlas needs to be active for Eoscala/Velkscala to be updated to 2.0 without massive inefficiencies.
- Vis Tacitus
Consider modularising fundamental design by having a designated Variable Editor window (Global/Group/Entity), having a modularised drag-and-drop Block Editor for complex/method designs, and having a Script editor with proper tagging, naming, and nesting systems (it should also support the aforementioned Block Editor eventually).
- Polities not displayed should be in italics.
- Customisation: Other (Data Variables)
- Custom data fields per entity
- Add variable/Delete variable (allow for UI nesting, although all are flattened strings, i.e. ‘age.15-25’, with . being the nesting delimiter for a namespace if found)
- All keyframes and global toggles
- Interpolation type: linear, cubic spline, none; checkbox for interpolation zero-bounding (true by default)
- View in graph toggle
- This should have its own custom context menu with the main line item buttons being ‘Add subvariable’, ‘Delete variable’, and ‘Edit variable'. This is most similar to entity actions, or entity keyframes.
- Fullscreen expandable editing
- Custom Mapmodes
- Add/Delete Mapmode
- Mapmode names, tags, icon customisation (including colour/stroke customisation)
- Global Mapmode toggle (carries across saves)
- Pick D3 colourscheme
- Add D3 colourscheme picker
- Custom scripting (feeds in entity_obj; forEach)
- Modular persistent text editor. Should bind to a given namespace
- Text editor scripting and saving
- Linear
- Logarithmic with exponent curve control ^0 to ^1
- Add mapmode search functionality
- Add current viewport bounding box, coordinates, zoom level, and cursor latlng/x/y in bottom row for Date.
- Settings tab
- Global variable management; settings UI per file
- Global toggles
- Detached global variable defines (allow for nesting)
- This should also have its own custom context menu with the main line item buttons being ‘Add subvariable’, ‘Delete variable’, and ‘Edit variable'. This is most similar to entity actions, or entity keyframes.
- Custom variable operations/scripts
- Remove negative numbers button
- Remove zero numbers button
- View in graph toggle
- Group theme customisation
- Custom Entity descriptions
- Citation engine
- Citations should be stored as a JSON index with numeric keys to specific URLs with notes
- Insert link as citation/footnote button for variables/text content
- General-purpose Scripts tab. Code can be written in here as .js and deployed for debugging purposes
- Default scopes: ‘global’/'histories'/'polities'
- Export current mapmode view as raster gridmap (this converts entity IDs to 32bit RGBA ints with associated data .json files for the current history frame)
- Export timeseries options (define custom domains, with custom steps)
- Automated timeseries pattern handling
- Gridmap editor
- Nested ID/Layered region raster editor
- Brush, fill, and overlay features. This is basically Paint.NET
- Overlay raster on vector
- Statistical visualiser for gridmap rasters (use https://github.com/maptalks/maptalks.gridlayer for Gridlayers)
- Raster gridmapping functions
- Scaling numeric raster data and operating on multiple images?
- Scratch-like code editor for mapmodes
- Scratch-like code editor for variable scripts
- Scratch-like code editor for operating on rasters; timeseries focused
- Kriging support
Note to flush out this TODO list later when we get there. It remains important for fundamentals pre-release.
- Lines support
- Points support
- Draggable nodes for Lines
- Draggable nodes for Points
- Draggable nodes for Polities
- Auto-labelling
- Fill patterns (i.e. gradients, feathering)
- Stroke patterns