Old News29 November 2015
Proto-text tool, take 2
While getting my feet wet with the myriad coding issues involved in text layout and fonts, I've programmed support for layered color fonts for Laidout. Each layer can be a different color, in a separate file. Someday I hope to support single file opentype based color fonts, but for now, this will have to do. You can learn more about color fonts, and download some layered fonts, here and here.
9 October 2015
I'm taking a break from working on the Engraving tool to finish conversion to rendering with cairo, which makes possible not only better rendering of paths and meshes, but also a text tool! Here's a very basic text tool experiment, to get my feet wet with the myriad coding issues involved in text layout and fonts.
26 July 2014
Development update: Spread Editor and engraving
Also, the engraver fill tool can now handle stacks of point groups, which are collections of lines that can have different settings like direction type (linear, circular, radial), colors, and other settings. This makes it pretty easy to overlay a white stack on a black stack to simulate dashed lines. I've almost completely redone the floating control panel to be more adaptable for future settings. For instance you can now set the thickness threshold below which a point is off, and another threshold below which lines are rendered with true dashed lines. At least supposed to be rendered with dashed lines. Still to do is actually rendering like that!
13 April 2014
Version 0.094c, another bug fix!
Fixed a couple small bugs in the engraver tool to at least allow it to load properly. I have a lot of plans for this tool in the next full Laidout release, such as more accurate block out, image tracing, something like Inkscape's node sculpting tools, various pressure sensitive enhancements and more.
14 March 2014
Laidout 0.094b, bug fix
Just released a kind of bug fix for version 0.094. In this one:
- Fixed loading bug for tile files for use in the clone tiler
- Added a spiral tiling
- Added ability to define custom page sizes in the Signature Interface. Just click the numbers next to the paper name to set up custom width and height.
- Added a freehand interface to create lines, "stroked" lines, or mesh along lines. This is more proof of concept right now, and is only accessible when you run laidout --experimental. Look for better integration of freehand capability in future releases.
Laidout Version 0.094 is at last 20 February 2014
Laidout version 0.094 released! Yipyip!
Laidout Version 0.094 is at last available, as source or an amd64 precompiled deb package, for you to experiment with. As always, Laidout is very much a work in progress. I finally stopped myself from starting to implement more new tools, in order to squeeze out this release. Consequently this release is more like a rough draft of many new things. Save often. I try to fix any bugs people tell me about, so when you find some, you can let me know via the mailing list, or email.
This release has taken so long on account of a lot of under the hood refactoring, and investigating its potential. Also there are rough implementations of a variety of new tools. While there is still no native text tool (I really swear I'm working on it), what IS new in this release:
- See a demo of the new editor here.
- Unified imposition window. It's now a little easier to switch between various imposition types. Under the document menu in the upper left, select "Edit Imposition", and it will default to the relevant editor. Click drop down in the lower left to select a different imposition type. Not necessarily the cleanest ui, but it's much more adaptable than before, plus it allows impose-only mode to access all imposition types.
- New color picker. Now if you double click on the mysterious box of color on the bottom of the window, you can use sliders to choose colors. They operate similar to the brilliant sliders in the Gimp, where you drag in the top half to set absolutely, and drag in the bottom half to pan the value with more precision. Clicking and dragging that old mysterious box with left, middle, and right buttons has always allowed you to set red, green, and blue color components, but it is nice to have less mysterious options. One caveat, there are sliders for rgb, cmyk, hsv, and alpha, but the cmyk sliders are currently a bit wonky.
- Shortcuts window. You may now define custom shortcuts without editing config files manually. Press F1 to pop up the shortcut editor, which initializes to the context you are in. Click on the key to redefine. One feature that didn't quite make it in this release, made possible with the new scripting infrastructure, will be the ability to run custom scripts mapped to whatever keys you want. This will come in the next release.
- Cloning. You may now clone objects. Similar to Inkscape, press space while dragging single objects or a selection of objects to create copies (not clones). If you press control-space, then drop clones of the object(s) you are dragging. One of the new experimental tools is a recursive cloner. You can use various predefined clone patterns, currently based on the 17 wallpaper groups, and 32 different uniform colorings. The next release will have an editor to create custom configurations of clone clusters to create things like fractal ferns, as well as define custom transform groups for symmetry cloning! The controls are a bit minimal, there are many obvious enhancements to be done. One important consideration is that you shouldn't ever delete your original object. If you do, your clones will not remember it when you reload your document. This is a big bug, but requires a fair amount of work to fix, so I delayed the fix till the next release. Perhaps not a user friendly choice, but who said life was fair?
- Engraver Tool. This is a tool that allows you to define fields of engraved lines, such as in printmaking. It uses the same mesh controls to define general line direction, and lets you manually touch up line width and spacing. Press 'm' to alternate between mesh editing and a brush to change line thickness. Hold shift and click-drag to change brush size. Normal drag thickens lines, or control-drag to make lines thinner. A not quite completed feature will be much more flexible line spacing controls involving merging and splitting lines.
- Alignment rules. This is a very experimental feature, off by default. Enable by running "laidout --experimental". Using the current path alignment and n-up tools is fun, but it is just a one time alignment. With alignment rules, you may now define custom rules for alignment of objects to parents, other objects, margin area of pages, or the pages themselves. Not only can you shift objects to align, the rules are flexible enough to allow using specific anchor points to stretch, resize, and rotate objects. This makes for fancy adaptive layout that changes automatically upon resizing your pages or objects. Currently, once you move an object around that others depend on, you have to press control-r to reevaluate the rules. Some of the rules, ie shearing and sometimes stretching, are proving rather difficult to debug, which is why this is still even more experimental than the other Laidout tools. No picture, because functionality, for all this hype, is currently not satisfactory.
- Graphical Shell. Having an internal scripter also helps standardize what tools, views, and objects can do. This in turns allows an easy graphical shell, a kind of high powered command searcher. It follows what context you are in, and allows typing commands with on the fly calculations to make things happen. This has a lot of potential for blending the ease of a gui with the power of the command line. There still needs to be a lot of glue code written to tie various Laidout objects to scripting. It's getting there slowly. Expect more refinements in future releases.
Next up in the development road map, aside from debugging and polishing the myriad rough spots of all the new stuff above, is reprogramming the screen renderer! I'm almost done implementing a cairo based rendering backend, which will simplify many issues, such as mesh rendering, generally making things look better, and most importantly, text rendering. Once I can render text in a flexible way, perhaps I can finally get a text tool working. I have 800 or so lines of code and counting, but still a long way to go to make a proper text tool. 14 August 2013
Fold paper on the web!! Now!!
Fold paper for books on the web! I'm pleased to release a port of the signature folder of Laidout to Html5 via Processing.js 1.4.1. So, any browser on any platform that can run that reasonably well should be able to run this! You might have a few quirks on tiny mobile devices, but hey, this is my first html5 port.
Click here to start! It may take a second to load, as it's a little over half a meg.
7 August 2013
Updates, and the Portland Zine Symposium
Laidout's signature based impositions have been undergoing a huge revamp, delaying my hoped for release date of a month ago. Hopefully it will be worth it, by allowing impositions composed of differently folded signatures, and stacks of different numbers of sheets of paper. This is important for books that need to zero in on a specific page count, by varying the number of pages in individual signatures.
Also, the weekend of August 10-11, there is the Portland Zine Symposium, at which Tom will have a table and also give a workshop on paper folding for zines, Sunday August 11, 1 pm. It will focus mainly on non-software methods to fold papers into signatures and not get confused, but hopefully also demonstrate Laidout for the same ends. So come on down to the Zine Symposuim at the Ambridge Event Center, 1333 NE MLK Jr. Blvd, Portland, Oregon, and get your fill of low budget, diy publications!
12 May 2013
LGM, and sharing tools
This year's Libre Graphics Meeting in Madrid at Medialab Prado has come and gone. The LGM always opens up new doors, showing the wide variety of what people are working on, with some great ideas for what kind of tools and working methods are possible. I gave two short talks. One about Laidout, and another about the concept of sharing tool interfaces across different applications. In making tools in Laidout, I find I want to use them in other programs, and some things in other programs I want to use in Laidout, such as Inkscape's in-development on canvas tiling tool. This should be easy to do, but there is much work to be done! Read more about this here.
I am hoping to have a new release of Laidout by July 14. One year between releases is way too long! One new feature being debugged is scripting, which will allow scripting tools among other things, such as a graphical shell, available right on canvas. Another feature coming soon is alignment anchoring, so that child objects can orient themselves to parent objects
15 July 2012
Laidout 0.093 Released! Yippee!
Laidout Version 0.093 is at last available, as source or an amd64 precompiled deb package, for you to experiment with. As always, Laidout is very much a work in progress. I tend to work on Laidout to suit my immediate needs, so probably there are loads of bugs I fail to activate. I try to fix any bugs people tell me about, so when you find some, you can let me know via the mailing list.
What's not new is that there is still no native text tool. I swear I'm working on it. What IS new in this release:
- A new alignment tool, allowing you to align objects to edges, on lay them out along paths, with various forms of rotation. From the object tool, select some objects and press 'a' to start, using this tool. See here for a video tutorial
- A new n-up tool, which is used for laying out objects into rows and columns. From the object tool, select some objects, and press 'n' to start using this tool. Currently, you may only lay out in grids where each cell is the same size, or grids where row heights and columns widths may vary. Also you may randomize within the bounds of a rectangle. Future versions will let you flow objects into areas also.
- The path tool has gotten some much needed attention. It hopefully crashes less, and is actually usable now. Improving that also debugged svg import so that paths import with an actual resemblance to the original svg!
- The object tool now has little on canvas flip controls. Click on them to easily flip vertically or horizontally, or drag out one of them to define a flip line.
- You may now define your own keyboard shortcuts. If you run "laidout -S", it will output a dump of all currently bound shortcuts in text format, or "laidout -H" for an html dump. A downside currently is there is no editor in the program. You have to manually edit that dump, then put a line in your ~/.config/laidout/(version)/laidoutrc to say where the new shortcuts are. I'm working on an editor.
Otherwise, here are some new tutorials, for things new in 0.093:
So the new alignment tool is basically working, and the path tool has gotten some much needed attention. Next up before a new Laidout release is a row-column arranging tool, and making the new opengl based polyhedron unwrapper be usable for net impositions. Hopefully this will be "soon"!
In the meantime, here's a video demonstrating the current state of meshes. There are quirks and bugs here and there, but it is improving!
8 April 2012
Alignment tool preview
Behold a preview of a new alignment tool in Laidout! With it, you may distribute sets of objects along paths. I hope someday to port (or help someone else port) this tool or some equivalent to Inkscape, where it would be most useful. I hope to smooth it out to show a less buggy version of this alignment tool at the Libre Graphics Meeting in early May in Vienna, which I'll be going to.
The Libre Graphics Meeting is an annual gathering of users and developers of all kinds of open source graphics software. This allows a kind of cross fertilization across projects resulting from face to face contact that might not otherwise happen just from developing over the internet. They are trying to raise money enough to cover travel costs of developers who otherwise could not afford to come.
11 February 2012
There is now a new fangled Laidout Google+ page, for your amusement!
Also, Tom will be in Brussels soon for the Libre Graphics Research Unit's Co-Position meeting, to brainstorm with fellow interface explorers about possible futures of open source layout tools. Click here to read an interview some of those folks did with Tom back in May on Laidout and related topics.
One last item, I uploaded new 0.092 versions to the download area, which fix a couple of bugs. One helps compiling on i386 systems, which was breaking upon checking for Cups. The other is a greying out problem on the default Ubuntu desktop. Hopefully those are fixed now. Let me know of other bugs you may encounter!
30 December 2011
Laidout 0.092 Released! Woowoo!
Laidout Version 0.092 is at last available, as source or an amd64 precompiled deb package, for you to experiment with.
What's not new is that there is still no native text tool. What IS new in this release:
- There is now an interface for modifying page labels. See a video tutorial here.
- You may now add custom printer marks, including some automatic marks if using signatures. Automarks are cut and fold lines just outside the printable area, and/or tiny dots just inside the pages. The dots are useful in case you have no inset in your signature. Work will be done hopefully soon to be able to customize various gaps, colors, and line widths of the automarks. For custom marks, future versions will also provide much more control over which printer spreads get which printer marks.
- There is now a very basic path editing tool. It is somewhat new, and probably inadequate and buggy, but you can at least build paths, and change the stroke and fill color with it. You cannot currently see transparency on screen in paths, but it will export with transparency.
- You can now select different units in the rulers. You can select a few common small units like inches, points, cm, mm, m, and yards. Also you can select what units should be default units from the new document creation dialog.
- Scribus import has been slightly improved to handle page number labels, and master pages. Note however that the master pages are converted to actual page objects on import. This simplifies exporting back out to a Scribus document after imposing onto some bizarre layout. For the Scribus plugin, there are now a couple of Scribus based dialogs that can popup to try to get settings to simplify calling laidout when things are not where they are expected. The automatic marks are available from the Scribus plugin, but you cannot currently add your own custom ones. For that, you still have to import into a running Laidout, not from the plugin. Read more about Laidout with Scribus here.
- Now uses ~/.config/laidout to store options, rather than ~/.laidout. Also there is a Laidout .desktop file provided to make it easier to access for those who don't like the command line.
- Unsnarled some really convoluted behind the scenes object movement code. This finally makes moving groups of objects from one page to another (or off of pages) actually work almost like one would expect it to. Still some serious problems moving objects that are nested in groups though! A prime example of Laidout being a work in progress. I swear I'm working on it.
- A few interface polishes, such as being able to click outside of a menu to make it go away, and tiny text writing in the rulers that might make them actually useable.
Also still next on the development agenda is revamping the net based impositions to make them actually usable without manually editing files. Also, rendering in Laidout continues to still be undergoing an overhaul, so mesh warping is still obnoxiously slow in this release, but should improve by next time maybe.
Be advised that I tend to work on Laidout to suit my immediate needs, so I leave it to you to find all the bugs that are not in my immediate path. If you find any, please let me know!
30 May 2011
As seen in video, I've been developing a 3-d polyhedron unwrapper, and panorama projector. I'm slowly, bit by agonizing bit, making it directly available within Laidout. It is called Polyptych, and currently lives only in the Laidout svn. Once you grab the Laidout svn, go to src/impositions/polyptych, and you can build the standalone version.
Laxkit source code. Grab the Laxkit svn, and go to the laxinput directory, and viola! Laxinput currently implements only the device hierarchy changes, so for more complicated input mapping, you will still probably need xinput, the command line utility that comes with the X window system, and perhaps xrandr. Now if only Laxinput helped map strange input devices like IR spots from wiimotes, or tuio input to something usable for applications!
Laxinput is definitely experimental software. Use at your own risk!! Both Polyptych (standalone and as a Laidout plugin), and Laxinput should be a little more stable by the next release of Laidout, whenever that is!
Libre Graphics Meeting recap
This year's Libre Graphics Meeting in Montreal was again filled with people from all over the world who make the software that I use all the time. I presented a short talk on developments in Laidout during the last year. Also, I showed how I used a combination of Laidout, Inkscape, Gimp, Blender, Polyptych, fabric and 40 iron on transfers to project a panoramic image onto a t-shirt. I'm working on a kind of tutorial of the process. People laughed, I am assuming at my jokes.
13 April 2011
Libre Graphics Meeting
Tom will be going to the Libre Graphics Meeting this year in Montreal. If you can plan to be in Montreal May 10-13, you should come too! This meeting brings together free open source graphics software makers and users, to talk about what's going on and what's to come, to collaborate and strategize. You can see the Laidout presentation from last year here.
13 November 2010
Laidout 0.091 Released! Ra ra oo la la!
Laidout Version 0.091 has been about a month away for the last six months, and is at last available, as source or an amd64 precompiled deb package, for you to experiment with.
What's not new is that there is still no native text tool. What IS new in this release:
- Rewrote the entire windowing subsystem to be more adaptible to new and strange input devices. For instance, you can use two mice at the same time to move, scale, rotate and shear objects. This is the poor person's simulation of multitouch capabilities. Right now, only the object tool has this ability, but future versions will have this more thoroughly available.
- There is now a Signature Editor, which allows you to chop up and fold a piece of paper right on screen to get the kind of imposition you want. It is now just as easy to make booklets that fold left to right as it is to impose into a calendar that folds up and down. You can fold with as many folds as you need, as long as the folds are either horizontal or vertical! One deficiency is that you cannot have printer marks. This is terrible and will be fixed by the next release. See a video tutorial here!
- Suppose you have a plain old pdf file, and you want to impose it with podofoimpose. No problem! Just make a dummy file with the same number of blank pages in Laidout, and then export PLAN files which can be used with podofoimpose.
- Scribus file import/export for the purposes of impositioning now supports linked text boxes and automatic page numbers (to some extent). You can also call Laidout from a Scribus script from within Scribus that lets you use the new signature editor to create booklets, calendars, or any folded imposition from Scribus documents. Master pages are still ignored, and bleeding across page boundaries doesn't work properly. These issuse will be dealt with in the next release (probably). More about using Laidout and Scribus together here.
- The Spread Editor has a couple of minor improvements, such as the ability to change the page status marks for many pages at the same time. Improvements in the Spread Editor are only partially implemented. Hopefully by the next release, there will be the ability to tag groups of pages as being contiguous, so that you can easily rearrange page order based on "chapters", rather than just page by page.
Next on the development agenda is revamping the net based impositions to make them actually usable without manually editing files. Also, rendering in Laidout is still undergoing an overhaul, so image mesh warping is still obnoxiously slow in this release, but should improve by next time maybe.
Be advised that I tend to work on Laidout to suit my immediate needs, so there are probably lots of bugs I fail to activate. If you find any, please let me know!
New Video Tutorials
|The Basics of Laidout for 0.091|
|The Signature Editor|
|Make booklets in Scribus by calling Laidout like a plugin|
31 October 2010
Still coming soon...
Here's a progress update. The signature editor is now in place, with fancy on screen folding. All that's left before a release is debugging the Spread editor, and ironing out a few interface and scripting annoyances.
Doing that should take about 2 weeks plus or minus a few weeks. I swear. I really mean it this time. You can trust me. Is this not a face you can trust? (Happy Halloween!)
18 September 2010
Just a few notes on coming changes to Laidout. Almost done is a folding signature imposition, where you can fold the signature right on screen, and adjust trim and margin values, and which edge is supposed to be the binding edge in a final book. This allows easy creation of both calendars and books with a single interface, as well as books whose page numbers increase right to left.
Also in the works are the beginnings of multitouch capabilities. This is done with Xinput2, which lets you use multiple mice at the same time, simulating touching a screen twice to do scaling and rotation by dragging 2 points around at the same time. The next Laidout version will only have this in the object tool, but future versions will have that sort of thing more thoroughly available.
If I can stop being so lazy, the next version will come out within about a month. If I keep telling myself that, it will be true someday, right?
9 June 2010
Laidout in Brussels
The annual Libre Graphics Meeting for 2010 was held in Brussels, Belgium, and I was fortunate enough to be able to go and meet many of the makers of the software I use all the time. There were about 170 people from 47 different countries, each day was action packed with interesting talks about lots of different programs and subjects. When navigating the streets of Brussels early in the morning trying to find the conference, you simply have to throw out any preconceived ideas about urban planning, and this really puts you in a great, open frame of mind when you finally get there and listen to the talks!
I presented Laidout and my interactive polyhedron unwrapper on the second day of the conference. People seemed to enjoy it. You can watch my talk, and all the other talks online, thanks to River Valley TV. The LGM was certainly inspiration to get me to spend more time developing Laidout!
You can read mini-reviews of some of the other talks on my website or lots of other people's takes here.
21 February 2010
Laidout 0.09 released!
After a mere 2.5 years, there is a new "Stable" version of Laidout. There have been a lot of under the hood changes, which makes some things better, and probably buggier in some areas, but it all represents progress, if you can believe it! One notable bug is that you should turn off desktop effects if you are running Compiz.
Laidout Version 0.09 is now available, as source, or your choice of x64 or i386 precompiled deb packages, for you to experiment with.
What's not new is that there is still no native text tool. What IS new in this release:
- There is now the ability to import a few vector based formats with varying degrees of success, include Scribus. Most data that Laidout doesn't know how to convert is stored as Mystery Data, which can then be exported back out to a Scribus file, for instance. This of course lets one do things like reimpose a Scribus document into a booklet and have it still be editable in Scribus, among other things. Be warned, though, that not much testing has been done in this area, so your success rate may vary.
- Another large change is the introduction of a very rudimentary scripting interface, accessible from the command line. This will be vastly improving in future versions. You can now do things like import, reimpose, then export files from the command line, without opening up any windows. This of course lets you do things like reimpose a Scribus document without leaving Scribus, with a script like this.
- You can now add, remove, load, and save different scratch spaces, as well as paper groups, so you don't have to recreate them whenever you start Laidout.
- Net impositions have been completely reprogrammed, to allow more adaptable import of 3-d models. You can specify an OFF file to use as the basis for unwrapping, for instance.
- Gradients, including color patch gradients, now display with transparency. Laidout's display mechanisms are undergoing an overhall, so the state they are in now will be improved with the next version.
14 February 2010
98% ready for a new release. Just a "small" amount of debugging still to go. Seriously. Honest.
10 January 2010
It is my new year's resolution to uphold last year's resolution, but for this year. I might make it before the Chinese new year on February 14th. I swear I'm 96% ready for the next release. Just have to do a bit of debugging. Really.
6 December 2009
I'm inching closer to having a release of 0.09! Hopefully I can make my deadline of December 31st. New will be rather a lot of infrastructure refactoring, and the ability to import, reimpose, and export from the command line, allowing, for instance, impositioning a Scribus document while inside Scribus with a suitable script. You can also import a Scribus document in the gui, and reposition its objects, even those that are not understood by Laidout! They are maintained by Mystery Data objects, and when exported back out, are still usable in Scribus (that is the idea anyway, except for ignoring master pages, preliminary tests seem to work for the most part). I started a page to house information about Laidout/Scribus interoperability here.
14 January 2009
It is my new year's resolution to release a new version of Laidout before it is time to make more new year's resolutions again!! I swear I'm working on it.
8 August 2008
Just so you know, Laidout development has been slow for several months, since the development team (meaning Tom Lechner), has been screwing around with a new camera and fisheye lens to make spherical panoramas. However, the current goal is to have another release in mid-September. The major change will be a complete reprogramming of the Net impositions, so that you can import any flat sided polyhedron, and unwrap it either automatically or manually into an imposition, with the potential to project an equirectangular spherical panorama onto said unwrapped polyhedron.
The polyhedron importing code and image projection is almost done, but the interface still needs to be programmed. Stay tuned!
23 September 2007
Zut! C'est impossible!!
Thanks to Nabyl Bennouri, Laidout 0.08 has been translated into French! It is available in the 0.08b download.
15 September 2007
Laidout has now been downloaded over 1000 times! I haven't seen much discussion on the net about Laidout, so probably people download it, can't get it to do anything useful, and move on. But still, over 1000!!
In any case, Laidout Version 0.08 is now available, as source or a i386 precompiled deb package for whatever it's worth.
What's not new is that there is still no native text tool. What IS new in this release:
- Postscript, EPS, and png export work the best, with all objects being supported.
- PDF export can handle anything but EPS objects.
- Scribus and Passepartout export can only handle images and groups at the moment.
- SVG cannot export EPS objects or image warp objects. It has a little trouble with radial gradients whose inner circle is not inside the outer circle, and can only very roughly export patch gradients, which get approximated following the strategy outlined by Inkscape's Bulia Byak here, and when I say approximated, I mean approximated. Step 7 of that method is not currently implemented, and the blurring is a little irrational, but only because I'm lazy. Fixing that is tentatively slated for version 0.09.
New video tutorials:
The Paper Tiler|
1 June 2007
Version 0.07 is now available, as source or a i386 precompiled debian package for your convenience.
New in this release:
You might be interested in a linear and radial gradient video tutorial:
25 April 2007
After several months too many, Version 0.06 is now available, as source or a i386 precompiled debian package for your convenience.
Really not so very much is new, but there are a few notable improvements:
4 November 2006
After only 2 months this time, Version 0.05 is now available, as source or a i386 precompiled debian package for your convenience.
Here are the highlights for this release:
/path/to/file /path/to/smaller/preview "description of the image"You can then easily import those hundreds of files with appropriate preview images right away. You can include extra settings such as how many images should be put down per page (a definite number, or as many as will fit), and the default dpi.
4 September 2006
At long last, Version 0.04 is now available, as source or a i386 precompiled debian package for your convenience.
New in this release is a Palette window, in which you can select a color, and have the selected object immediately respond to it. Double clicking in the palette window brings up a file browser to let you load in other palettes, including those from the Gimp. Also, the splittable window system has been fixed up a little, allowing you to drop panes to other places, and float them off a window. It's not perfect, but it gets there eventually! There is also a new command prompt window (but only a couple commands!).