Laidout Roadmap

Things to do before the next release. This is a very rough draft of a roadmap, and is by no means the final word.

Version 0.098 --

Issue #11: Flatpak creation, submit for Flathub
Be able to import/export new Inkscape multipage art boards
(done) debug svg in enough to be able to load icons.svg
(done) svg in/out with powerstroke
(done) svg in/(done)out with meshes, at miminum round trip export/import should work
(done) Import svg gradients with proper filling of parent
(done) Animated gif import
(done) Page Atlas exporter
(done) Way to export pages as svg embedded into html
(done) pick and choose export range, not single "from:start to:end", but like "1-3,5,19-20"
(done) Clip paths
(done) Clip path in place editing
(done) Gradients able to fill parents with none,pad,reflect,repeat spread methods
(done) Debug gradient radial controls
(done) Show/hide objects
(done) Object tree window, at least allow toggling locked, visible, and select from list.
(done) Find object interface
(done) Empty objects that can be parents, or whose contents are defined by nodes
(done) Perspective transform object filter, proof of concept for hybrid interface/node workflow
(done) engraver tool, fix so that current render is not rerendering every frame
(done) PathInterface: adding point hint
(done) PathInterface: Mouse based delete segments
(done) Debug Text on path tool a little
(done) Clean up mesh controls
(done) Node based image "importer"
(done) More nodes: global var access, any drawable object, expressions, path generators, reroute
(done) Even more nodes: point set creators and converters, path endpoints, path extrema
(done) Yet even more nodes: set element, subset, getdocument, export, "basics", objectfunction
(done) Mirror node, coupled with a Mirror Interface
(done) Animation play/stop overlay, with node hooks
(done) Convert backend to using Theme objects for easier adjusting in the future
(done) Issue #12: Fix object bleeding across pages for signatures and nets
(done) Make Imlib2 dependency optional, prepare replacement image loading with GraphicsMagick
(done) Replace x11-dev makedepend with custom script
(done) Issue #10: Investigate AppImage creation
(done) Be able to generate icons from source svg directly
(done) drag-n-drop from system, like drag images into viewwindow from an external file browser
(done) Issue #16: Address icon/text/thin line sizing issues for high dpi monitors
(done) System to manage external tools, like print command or image editor
(done) Moving selected things in group contents does not update group bounds
(done) should not be able to select both group and group contents at same time
(done) If curobj, select siblings first. If no curobj, select direct children of context first
(done) double click on group should change selection area to group contents like inkscape?
(done) make laidout.org twitterable with an image card
(done) Html gallery output with optional template

Version 0.099 --

debug previous version a bit
Undo/Redo
engraver tool grow point mode engraver tool, resolution cut mode engraver tool, blockout needs to be more precise engraver tool, fully test tool effects when many objects selected
PDF in, at least as 1 image per page, for purposes of imposition
pdf export, unicode capable
Optimize pdf export to rescale to target dpi, and compress image data
Global Settings window, so you don't have to manually tinker with laidoutrc
Tools should remember their settings
Import Images dialog needs total reprogramming
Tool scripting
Scripted plugin interface
Clone Pattern Builder
Object tree window, allow rename, rearrange
Finish implementing double sided net impositions
allow inserting net impositions as foldouts in regular Signature Imposition stacks
debug Net imposition interactive unwrapper, via optional opengl Polyptych
Net imposition build net interface
Signature editor: detect non staplable binding edge, show red rather than green
Signature editor: option to specify alignment of different size signature stacks
drag-n-drop text to and from the various text edits
Issue #6: Figure out what on earth is to be done about color font processing
lock down color backend.. currently it's mostly a series of terrible hacks based on 8-bit screen rgb
Soup up the color box so one can recall previous colors, and/or integration with palette window
color styles, so objects can refer to a named color, just change that named to change all
In image properties dialog, be able to select from various default preview configs
fix object transform handles for really small objects (handles should still be accessible)
Clean up project load/save internals and dialogs
Object and resource tags interface
Custom line caps
make PathInterface extrapolate line join work
debug and optimize line outline cache, especially for joins
Finish implementing anchor tool
Custom alignments to parents, not just affine transform to parent
Externally rendered objects, similar to Scribus render frames
Softmask
Stroke fill
GraphicsMagick nodes
Gmic nodes plugin
Merge EpsData with normal images, since they can be previewed with gm now
Make a laxkit.pc and use it in Laidout build to simplify build process
Python plugin
Collect for out
export preview
Make sure scribus export works with 1.5, and can handle new clipping features
Scribus import should try to do something appropriate with page spreads >= 2 pages wide
Scribus import should do something meaningful with original Scribus page bleed values

Version 0.1 --

First and foremost, need copious testing by people who are not me.
implement command line language tag
Full internationalization support (via harfbuzz) in window controls for input and output, including rtl/mixed text?
SpreadEditor: be able to eject a page into limbo, for creation threads, connect, then insert as a group
When importing from an image list file, should be able to say if and when to auto-make previews
Basic infrastructure for most things should be in place.
Must be Stable, not merely "Stable"
Creep management controls
graphical shell should also help find and set key shortcuts
Construct an adequate command core, so that no X connection necessary for batch processing
Improve open from template to be able to use names (defined in a file), not just filenames
perhaps have image open window pane for main split window? drag and drop in images? that would be AWESOME
Should have option to print/see or not print/see big, preview, or no images, per image
When adjusting things with the object tool, must have option to be temporarily a little transparent
All the pdf 1.4 group combine properties, like most importantly transparency
Configurable icon panel/menu system, make the button box actually function
Linear (including curvilinear) guides
Have imagepatch be a transform you can apply to any object
Some sort of basic scripting infrastructure allowing easy addition of other scripting language plugins. Swig?
Plugin infrastructure should be in place: add objects, panes, commands, interfaces, resources, command-line-options?
allow for easy method for runaround area determination
Full color management implemented, floating point or integer. Got to keep up with Krita and Gimp!
CieLab color space
Resource manager/style edit window
a real PrintDialog that can configure itself based on printer info
non-hacky new document box that can retrieve printer capabilities, and adjust accordingly (ie grok ppds)
all things must define their styledefs
make it easy to add/remove/prioritize/replace import/export filters
support for rendering the svg filters
Provide some kind of visual feedback while doing lengthy operations
Improve and/or make new logo and splash image, and generate icons from a laidout doc
Somehow combine the ViewWindow and SpreadEditor to optionally allow the sort of 'infinite scroll'
Be able to interact with patches in a way reminiscent of Inkscape's node sculpting
Object and page templates, aka master pages
Pages with curved edges, to allow nets for shapes resulting from intersecting cylinders, for instance
Able to select and transform paths/points from different objects at the same time
Color channel density control, to not overdo CMYK mix, for instance
Allow accessing scribus image cache, or try to spin off a non project specific general image cache
Backwards compatibility with previous Laidout versions, without extra utilities, starting with 0.1
update french and spanish translations, if possible
Paper sizes should be translated strings
Implement poor man's multi-contact interface for all appropriate interfaces

Version 0.2 --

Flowed text tool
text: Opentype feature support (other than multicolor stuff)
text: Opentype color font support: COLR/CPAL, SVG
text: Mixed left/right/vertical text in text streams
text: Numbered lists
text: Tables
text: hanging punctuation
text: Automatic table of contents
text: Bibliography
text: Footnotes
text: auto track chapter/section
text: Automatic, yet overrideable hyphenation
text: layout inside anything that provides an 'area' and runaround facility.
text: math mode
Implement .obj file material import
Full multi-contact, blob and pressure sensitive touch for possible tablet interface
partial Laidout export
implement export even/odd, batches, and paper rotation for other exporters: ps eps plan ppt
Figure out best way to expose laidout functions to other program's scripters (ie inkscape and scribus)
Bezier color patch freeform, rather than just grid.
Possibly allow pure function gradients, and redefining the functions for the other gradients..
Maybe bez part of path interface should have segment move like inkscape
Somehow be able to do simulated add-ins/foldouts from within any page of an imposition
use any path as a kind of tab stop
Optional multi-key shortcuts?
Decide on adequate rendering backend: going with cairo for now, but that's only 8bit. gegl? antigrain? antigrain/freetype/harfbuzz/gm?
GraphicsMagick/ImageMagick plugin or integration: benefits: a gazillion file formats, including EPS, and color profiles Imlib chokes on really big image files, whereas this would not
svgfont/cairo user font support.. too special of a case?
Optional Midi controller usage
gmic filter plugin
full TeX importer
Would be nice to have tex/latex text and equation reader
Would be nice to be able to handle metapost/metafun sort of things
Would be nice to be able to handle lilypond sort of things
Load/save various gimp/inkscape/etc things like gradients, palettes, and paths, perhaps extract from/to xcf
Maybe have ability to break apart and use parts of gimp.xcf/inkscape.svg/scribus.sla, and put them back in?
Stream/Story editor, maybe html export from streameditor?
for plain postscript, there's bitmask, but no transparency. maybe optionally do simulation with dithered bitmask
Cooperate with photo programs like KPhotoalbum, f-spot
Make nets cooperate with Hugin/Enblend: plugin for panorama projection to/from nets?
Work and turn/work and tumble
openoffice files import
Uniconverter support
Super import place tool, including recursive placement
The other Postscript/Pdf gradients?: Triangle strip and Triangle Mesh
fore edge printing
fore edge sculpting
hdr color support
Vx support?
Verse support?
Content version control?
dbus?
3-d/vr interface support (mainly for hedron unwrapper)
port to other os
port to tablet, or subset functionality, like check out to tablet, work on lower res version, to later import to system with full resources
Net/polyhedron layout 3-d previewer extra (maybe?? software BSP tree? opengl?) pdf 1.6 can embed rotatable 3-d
Perhaps have animation support/mode, 1 page=1 frame or separate time slider and keyframes
Akin to animation mode, have movie/sound objects available to html export, for instance?
a FlexibleImposition for html/streamed output target?
JDF,JTAPI support?
Saveable undo stack(?) see http://people.csail.mit.edu/sarasu/history/ for inspiration. Also Xara has this.
Implement cross platform

Version 1.0 --

End world hunger
Stabilize the biosphere without causing mass extinction
Neutralize all nuclear waste
(done) Visit Pluto
Visit Pluto (in person)
While i'm at it, I'd like a pony.


Old Releases


Version 0.097 -- released 25 November 2018!

(done) debug previous version at least slightly!
(done) experimental Delauny/voronoi lines tool
(done) engraver tool, fix non-live updates when tweaking various parameters
(done) Clean up symmetry clone interface, not easy to use currently
(done) Allow setting custom default exported file name (via a line in laidoutrc)
(done) text objects: harfbuzz based
(done) Add more save options: save a copy, save incremented, save as template, autosave settings
(done) Allow permanently changing units and default paper via a control in a window, not just by editing laidoutrc
(done) svg out default to 96dpi
(done) Implement c++ plugin infrastructure
(done) Experimental perspective transform interface
(done) Experimental voronoi interface
(done) Experimental node interface (done aside from large todo list)
(done) fix tooltips
(done) Connect node interface for use with object filters

Version 0.096 -- released 18 December 2015!

(done) Finish Implementing cairo renderer, make meshes finally render faster, plus general rendering niceness
(done) Text for god's sake!! It's been what, 10 years!?
(done) text: layered color fonts, each layer has to be a separate font file
(done) Caption text tool
(done) Caption tool, export svg: done, but due to svg, problem specifying colorfont fonts
(done) Caption tool, scribus -> done-ish, font naming problem for color fonts, and a sizing discrepancy
(done) Caption tool, pdf -> done sort of, fails for text outside latin-1, because fonts in pdf are a terrible headache.
(done) reprogram file dialog to have adequate presentation of recent and bookmarks
(done) fix viewport zoom and rotate wigging out on right click mouse move
(done) make window maximize work in gnome (magically seems to work again in recent gnome, resize also seems to work again in recent gnome)
(done) autosave for autorecover -> done, but you have to set manually in ~/.config/laidout/(version)/laidoutrc
(done) test new export even/odd, batches, and paper rotation for major exporters: svg image pdf scribus, not done: ps eps plan ppt
(done) export option alternate each paper 180 deg
(done) export option rotate every paper by increments of 90
(done) export option, put out in reverse order
(done) Infrastructure for resource sharing between objects
(done) engraver tool, fix blockout! how did it break?!
(done) engraver, allow work on multiple objects at once, including tracing
(done) Re-fix cut and paste from system clipboard
(done) Re-Re-fix paste from system clipboard. I swear it was working.

Version 0.095 -- released 23 April 2015!

(done) be able to trace images in engraver tool
(done) engraver tool point groups to trace from same object to different trace settings
(done) engraver tool linear, radial, or circular line fills
(done) engraver tool, implement dashes
(done) allow editing meshes based on a path
(done) PathInterface varying width lines, offsets, and different kinds of line joins (bevel, round, miter)
(done) PathInterface subpaths for hole making should work: check exports (ignoring eps and ps for now)
(done) Cache transforms to optimize ColorPatch/ImagePatchData point lookup
(done) allow export even or odd
(done) allow export in batches
(done) Freehand drawing with tablet pressure support
(done) Clickable page numbers to select markers
(done) impose-only mode should allow access to all imposition types, not just signatures
(done) Scribus import of doc with 2 page spreads on export imposes incorrect object positions

Version 0.094 -- released 20 February 2014!

(done) need partial Laidout import
(done) should probably put laidout stuff in its own namespace, just to be polite
(done) Rough draft of Custom alignments to parents, not just affine transform to parent
(done) Cloning
(done) Clone Tiler
(done) Shortcuts editor dialog
(done) Signature editor needs option to preview pages while folding
(done) Signature editor: have variable num of pages per signature
(done) Optimize pdf export to not duplicate images
(done) SpreadEditor: insert blanks, delete pages
(done) SpreadEditor: working with >100 image heavy pages does strange hangs, and starts really slow. Fix!
(done) Color sliders, when double clicking on color box
(done) implement scale pages to new imposition when reimposing
(done) graphical shell, kind of a searching calculator and function caller
(done) Laidout application icon for window manager paging seems to be broken
(done) More robust scripting: loops, variables, functions, classes (still a bit buggy, but much has been done)

Version 0.093 -- released 17 July 2012!

(done) On canvas flip controls
(done) Align tool
(done) Nup tool
(done) Fully configurable shortcuts (editable through config file)
(done) PathInterface must be improved

Version 0.092 -- released 30 December 2011!

(done) Debug enough to hopefully not be too embarrassing
(done) Actually implement path exporting. Make that path icon mean something this time!
(done) At bare minimum, path interface use should not cause a seg fault
(done) Fix broken paper tiling interface
(done) Ability to add custom printer marks
(done) Fix multi-object selection move when crossing page boundaries
(done) Gui for modifying Page Labels
(done) Scribus import must support master pages
(done) Scribus import/export should support PageRange <-> Section conversion on import
(done) Units, especially Allow changing units in rulers
(done) Add proper .desktop and application icons installation
(done) Use ~/.config/laidout, instead of ~/.laidout
(done) Implement wavefront obj file format in/out for polyhedra
(done) from laxkit: clear up focus handling which currently REALLY SUCKS especially when dialogs or menus are up (maybe done)
(done) from laxkit: clean up pop up menus which currently REALLY SUCK -> now deletes menus when clicking outside them

Version 0.091 -- released 13 November 2010!

(done) Well, maybe done: Debug enough to not be too embarrassing
(done) impose-only mode, so as to allow easy plugin in access, to for instance do booklets inside scribus
(done) Do a poor man's multi-contact touch screen interface with 2 mice and Xinput2: object tool only, so far
(done) Images should maintain their aspect ratio by default when scaling
(done) Scribus import must make sure linked text and linked table mystery data behave properly on export
(done) Export PLAN files for podofoimpose
(done) Generic fold and trim imposition
(done) Be able to load imposition instances, a form of resource
(done) Import images as flow/centered within page margins, not within page outline
(done) Import images with alignment per page type into the page margin region
(done) SpreadEditor: improvements: re-re-fix auto layout
(done) SpreadEditor: load/ save many spread editor views with doc (including marker placement, other settings)
(done) SpreadEditor: editor should allow changing working document
(done) SpreadEditor: be able to change marks of many pages at once

Version 0.09 -- released 21 February 2010!

(done) Test, test, test! from fresh install to print out, make booklet, portrait, landscape
(done) More libintl support, means finally adapting laxkit and laidout to utf8 internally, no small task!
(done) Add, delete, and rename limbos
(done) Load, save, add, delete paper groups
(done) Finish implementing project based setup, particularly being able to save a project, not just load one
(done) Use the freedesktop recommended ~/.recently-used (on laxkit's todo also)
(done) NetImposition needs to be able to import 3-d models such as from OFF files
(done) Debug net impositions!!
(done) Selected region out to image(s), regions optionally remembered (done via custom papergroups)
(done) be able to reimpose a document from gui and command (from command mostly works)
(done) Import(), Export(), NewDocument() commands
(done) Make commands actually available in the command prompt window
(done) command line option to pass in commands, like "import blah; reimpose box; export blah2"
(done) plain text edit window for notes/scripts/whatever save with project or doc or its own file
(done) Image and Color patches, gradients should allow transparent colors
(done) When importing, need infrastructure to preserve mystery data as possible, to be later exported back out
(done) Passepartout import
(done) (very, very partially, anyway) Svg import
(done) (very partially, anyway) Scribus import
(done) fix the memory hole (in papergroups?)
(done) fix the other memory hole (triggered by importing images?), something in paperinterface, too
(done) for some reason, podofobrowser doesn't like laidout produced pdfs, but they're fine with xpdf. huh!
(done) control-q quits now rather than plain 'q'
(done) from laxkit: Fix cut and paste from system clipboard
(done) mouse releasing grab when crossing window control boundaries, makes color box unusable. address this!!!

Version 0.08 -- released 15 September 2007!

(done) Test, test, test! from fresh install to print out, make booklet, portrait, landscape
(done) fix hard to trace crash in importimages dialog for shift select range of files
(done) (sort of, load but not save) Finish implementing project based setup, especially when loading
(done) limbos should be selectable, and saved independently of windows
(done) Basic libintl support, latin-1 translations only!
(done) Paper tiler interface
(done) Zoom handles screw up viewer transform aspect. Fix it!!
(done) Fix linear/radial gradient editing when object is sheared
(done) Dialogs should remember their placements
(done) Standardize the import/export mechanism
(done) PDF out
(done) svg out
(done) Export all/current paper/paper range, by singles, page layout, or paper layout to any filter
(done) Export to various things from command line to allow batch processing
(done) Export as a Scribus document
(done) Print/export to images (via ghostscript)
(done) Find and fix the damn memory hole (at least it currently slowly eats memory rather than crashing) (fixed PageStyle mess up, now problem in viewwindow->curobj probably)

Version 0.07 -- released 2 June 2007!

(done) Have command line option to output to a file a pseudocode mockup of the file format
(done) EPS out booklet landscape is broken, fix it!
(done) Implement all preview config options, namely auto preview files over a certain size
(done) Be able to search for existing previews in ~/.thumbnails/large and normal
(done) Document selector button up in corner should work
(done) Clean up image import dialog
(done) Fix icons/makeimages.py!! "from xml.sax import saxexts" somehow stopped working
(done) Eye dropper-ish color grabber, ideally grab any color anywhere on the screen
(done) (sort of) Make the select by dragging out a rectangle work
(done) limbo objects should save with the document, instead of just disappearing!!!
(done) Linear and radial Gradients should have vastly better interfaces
(done) Image and Color patches should have vastly better interfaces
(done) (but only because I can't reproduce it any more for some mysterious reason) from laxkit: fix tooltips: seems laxkit accidentally allows multiple tooltips on rare occasions

Version 0.06 -- released 25 April 2007!

(done) parent/child nesting and interface for that: nesting, and grouping: layer trees
(done) New document creation from templates
(done) Be able to work with preview images more easily
(done) Basic EPS import, would open up all kinds of down and dirty tricks using other programs:latex,lilypond,...

Version 0.05 -- released 4 November 2006!

(done) Build a features.html for the webpage
(done) Be able to work with preview images, rather than hundreds of 15M tiffs
(done) Show adjacent pages in Net Singles view (prelude to being able to unwrap shapes any way they can)
(done) Use a ~/.laidout/0.05/laidoutrc
(done) SpreadEditor: re-fix auto arranging
(done) ObjectInterface for selecting and resizing multiple stuff
(done) Import images from a list file
(done) Make ImageInterface scaling suck less, and distinguish between no image and broken image
(done) autoconfiscate or cmake or (this one)have simple "configure" thingy
(done) Should be able to 'Open Document' without restarting Laidout!!
(done) Improve internal icon management

Version 0.04 -- released 4 September 2006!

(done) Palette Window
(done) RSS feed for website
(done) A style manager, which is Not dependent on laxkit::refcounter, which is being removed
(done) from laxkit: SplitWindow: swap window positions
(done) Simple multiple image import by selecting one or more from a directory
(done) Allow for window docking, floating, swapping panes, and temporary pane maximize
(done) Page Ranges controlling page number labels
(done) Make workspace bounds and popup panner save with the document
(done) Fix page/spread flip by number

Version 0.03 -- released 13 May 2006!

(done) (but needs serious optimizing) Bezier patch with image for the color (this would be HOT for the gimp! a side project..)
(done) if an image is selected, should be able to import an image to it
(done) printing: produce masked images based on 50% threshhold of alpha channel of images
(done) When loading files from the command line, should understand: 'file:///path/to/it'
(done) Whoops! Change reference from LGPL to GPL in source code!! Crap!!
(done) Load and save window configurations
(done) EPS out to file###.eps by page not paper
(done) Be able to print a paper range
(done) an About window
(done) command prompt window
(done) Get rid of vertical white stripe toward bottom of the laidout webpage
(done) SpreadEditor: drag to viewer to work on that page or spread
(done) SpreadEditor: fix auto arranging
(done) Make doc tree changes sanely update the various windows
(done) Be able to DEselect all objects!!

Version 0.02 -- released 8 April 2006!

(done) Rename Disposition to Imposition. Why oh why did I call it Disposition??
(done) Insert some way to turn off debug info dumped to cout (done in a convoluted way, perhaps)
(done) Linear Gradients edit, save, and printout
(done) Circle Gradients edit, save, and printout
(done) Color patches should work better than in 0.01
(done) Overall windowing setup using Laxkit::SplitWindows,
(done) from laxkit: replacement of 'datastack' should be complete, do same here
(done) Popup tool selector
(done) ObjectInterface for resizing and shearing
(done) Make Save/Save As dialog box suck less: 'test/1.doc' should mean cd test, save '1.doc'
(done) Make it easy to make deb packages from source
(done) extremely basic print dialog: print to file (ask on overwrite) or send via shell command
(done) make the directory spot in viewer keep updated current directory
(done) debug SpreadEditor thumbnail updating, and clip thumb to page
(done) A help button to popup a list of all the otherwise unmentioned key shortcuts
(done) Debug 'Delete Page'
(done) Button for pageclips
(done) Implement SpreadEditor Reset button

Version 0.01 -- released 12 March 2006!

(done) Clean up web page a bit.
(done) TILING MUST WORK!!!!!!! for booklets also
(done) Get NetDisposition sort of going
(done) Implement page clipping for display AND for printing..
(done) Images should work well
(done) Color patches should work enough to be getting on with
(done) in the laxkit: menuselector,
(done) tooltips IMPORTANT!!,
(done) and set said tooltips for the mystery numbers in ViewWindow
(done) Add copyright notice to source files
(done) Add and Delete Page buttons
(done) Throw together a quick key-stroke cheat sheet


Last change: Thu Mar 9 13:55:17 2023