[HN Gopher] Zooming User Interface (ZUI)
___________________________________________________________________
Zooming User Interface (ZUI)
Author : TheFreim
Score : 50 points
Date : 2024-04-15 11:33 UTC (11 hours ago)
(HTM) web link (en.wikipedia.org)
(TXT) w3m dump (en.wikipedia.org)
| aappleby wrote:
| I made a proof-of-concept text viewer with this in mind -
| https://github.com/aappleby/wideboard
| skulk wrote:
| I wonder if instead of shrinking the text geometrically when
| zoomed out, you could shrink it semantically (with a LLM or
| something similar) as in the wikipedia image ZUI example. Of
| course this would require an enormous amount of pre-processing
| to get multiple levels of zoom shrinkage.
| peddling-brink wrote:
| Just as much as a map. I did something similar using a local
| LLM to summarize paragraphs. Using a public turbo model or
| even something local would be very doable.
| postepowanieadm wrote:
| That's a really cool idea!
| bradmcnally wrote:
| There is a great demo of this in Sensecape.
| https://youtu.be/MIfhunAwZew?t=165
| hateful wrote:
| I like this idea, but it should have a limit - because every
| time I zoom in to read the name of a road on a map and the
| text resizes to a smaller size for infinity I wish it didn't.
| Solvency wrote:
| just because this zooms doesn't mean you made a ZUI. the spirit
| of a ZUI is change of information/density/etc at different
| levels of zoom.
|
| like google maps.
| hateful wrote:
| Or that infinite scroll game of life that was on here a few
| weeks ago! more density, same information!
| tomthe wrote:
| Wait, how is this possible?? I tried to visualize a few tens of
| MB of text in the browser [1] on a canvas and it gets really
| choppy if I don't optimize it by not showing stuff that can't
| be read. Impressive that it can handle gigabytes of text!
|
| [1]: https://tomthe.github.io/hackmap/
| wongarsu wrote:
| I'd wager by making the requirements simpler. Wideboard is
| rendering monospace, so every document is made up of of
| 8x16px cells, and you just have to decide which glyph to
| render in each.
|
| From a quick skim of the source code this is mostly
| precalulated. Basically each document is rendered as one
| rectange, where the shader converts the current position to
| the row/column of the character to be rendered. There is one
| texture that holds the length and starting offset of each
| line (using one pixel per line), and another texture that for
| each offset tells you which glyph to render (using one pixel
| per glyp). The third texture is the glyph map that holds the
| actual glpyhs (a simple 256x256 texture of all supported
| characters). The last texture is static, the other two are
| calculated once as the document is loaded, and there is a
| neat shader that uses all three textures to render the actual
| document view. Since the shader is sampled at fewer points if
| the rectangle takes up fewer pixels on your screen this works
| out well for zoomed out views.
| azinman2 wrote:
| Hint: it's a dead end people! Been around forever as an idea,
| lots of academic studies and some industry apps. Doesn't really
| work and has never taken off despite many attempts. Many reasons
| for this, including the real world doesn't include zoom at
| multiple orders of magnitude, going in all planes is harder than
| a linear list for people to scan, semantics in 2D isn't something
| that's easy to grasp cognitively unless you specifically arranged
| things that way (which isn't the case for this kind of software,
| and even then you can lose what's happening / adjusting
| everything to account for something new isn't well supported),
| and not many use cases where this is broadly useful (especially
| compared to other tried-and-true approaches).
| arrakeen wrote:
| i don't know, miro and figma seem to be pretty popular
| applications using a ZUI
| ramesh31 wrote:
| Figma is popular in spite of this. It's my number one
| frustration. Actually being able to link someone to a
| specific view is nigh impossible to do consistently.
| ramesh31 wrote:
| >Hint: it's a dead end people! Been around forever as an idea,
| lots of academic studies and some industry apps.
|
| Indeed. For a concrete example see Ted Nelson's "Zigzag" UI
| concept:
|
| https://en.m.wikipedia.org/wiki/ZigZag_(software)
|
| https://www.youtube.com/watch?v=WEj9vqVvHPc
|
| tl;dr: a lot of good and interesting ideas that should never
| actually be implemented.
| adamrezich wrote:
| Why not? That was quite an interesting presentation.
| sebastianconcpt wrote:
| Aren't maps a successful use case for them tho?
|
| Google Maps and Waze and friends being universally useful these
| days?
| stcredzero wrote:
| _Hint: it 's a dead end people! Been around forever as an idea,
| lots of academic studies and some industry apps._
|
| Is it, though? For one thing, many feel that projects like
| Dataland led directly to the modern Windowed User Interface.
| One can think of opening windows as a kind of limited zooming
| with very specific affordances. The iOS UI is cited in the
| Wikipedia article on ZUI as being another example.
|
| Basically, any UI in which one can "drill down" into greater
| detail or smaller/more specific contexts is effectively a kind
| of zooming. The problem, is losing the connection to the larger
| context.
|
| Another thing to consider: At the time many of these things
| were tried out, there wasn't enough capability in the CPU and
| UI to render complex data fast enough. In fact, I was involved
| with a round-trip UML DB to UI product dating from the 1990's,
| which looked great in demos. However, it became dog slow when
| actually given someone's company database. This was a problem
| which dogged many projects with innovative UI ideas. (A problem
| which many CAD software apps deal with, and which seem to have
| been solved to some degree.)
|
| _semantics in 2D isn 't something that's easy to grasp
| cognitively unless you specifically arranged things that way_
|
| Do you have specific examples?
| karmakaze wrote:
| I was hoping that this was going to be about zooming contexts
| rather than renderings. It would be much effective to me if I
| could zoom in/out of contexts like on a distributed system
| diagram, and zooming in and in, until I got to a code browser
| for part of subsystem I wanted to change, and have those
| changes immediately effective, like a REPL but in the style
| of Smalltalk image.
| stcredzero wrote:
| _like a REPL but in the style of Smalltalk image_
|
| Funny, but in my comment above, I'm referencing a Smalltalk
| program!
|
| Smalltalk environments are actually full of things that are
| functionally just about a REPL.
|
| _until I got to a code browser for part of subsystem I
| wanted to change_
|
| There are a variety of query languages for code repos.
| VisualWorks Smalltalk had two versions of this. One was
| based on the RefactoringBrowser code. There was another one
| that was a VisualWorks library. These could be used to pop
| up a _very_ specific browser. For example, you could have a
| browser that just showed all of the implementers of a
| certain method X and referenced instance variable Y and
| called a method Z.
|
| I wish "modern" IDEs could support something like that.
| This would actually be very useful for providing context to
| LLMs.
| kristopolous wrote:
| Windowing systems have this zoomout mode for application
| selection these days and smart phone web browsers have a
| similar thing for tabs.
|
| Many modern text editors have a zoomed out view of the code
| that you can use to scroll around it.
|
| There's photo browsers with thumbnail views. As you zoom in to
| each photo, more information is exposed.
|
| Then there's video and audio editing software with complex
| zoomable timelines.
|
| They're kind of everywhere to be honest, just a bit hidden.
| marcosdumay wrote:
| I'd say that directory organization of filesystems is an
| example of it too.
| harporoeder wrote:
| While I'm not sure I would claim it is practical, playing around
| with eaglemode is fun. It is available in the AUR among other
| places
|
| 1. https://eaglemode.sourceforge.net/screenshots.html 2.
| https://aur.archlinux.org/packages/eaglemode
| benpm wrote:
| it's a novelty but a fun novelty. check out Eagle Mode
| dhc02 wrote:
| Reminds me of Prezi. Do people still use Prezi?
| czscout wrote:
| First thing that came to mind. I remember in school at least 10
| years ago we used it because a teacher liked it. Most of us
| just used it as a Powerpoint alternative, but a few kids
| definitely harnessed the extra power available over a generic
| slideshow. I remember being really impressed at the creative
| presentations a few people made with it. Fun times.
| orthoxerox wrote:
| I remember it being "the future of slideshows" back in 2012,
| and then the hype died.
| dhc02 wrote:
| I made a resume with Prezi that landed me a pretty great job,
| and then never used it again.
|
| It was really great for that one use case: something the
| recipient could click through and continuously be surprised
| by the complexity of without having to know the tool. Click.
| Wow! It got bigger. Click. Woah! It got bigger and rotated!
| niutech wrote:
| Do you remember Microsoft Deep Zoom and Deep Earth?
| https://en.wikipedia.org/wiki/Deep_Zoom
| gasi wrote:
| To make images zoomable, check out https://zoomhub.net
|
| Can be extended to full ZUIs, e.g.
| https://zoomhub.net/showcase/ecommerce/watches (desktop
| preferred)
| RyJones wrote:
| I worked for a Microsoft spin out in 2007 called ZenZui, which
| provided a ZUI for Windows Mobile devices. Then the iPhone was
| released!
| Cockbrand wrote:
| Wasn't this pretty much the UI/UX for microfiche, when it was
| still a thing?
| tripdout wrote:
| There's a Wayland compositor called Newm [0] that uses a similar
| approach [1].
|
| 0: https://github.com/jbuchermn/newm?tab=readme-ov-file 1:
| https://www.youtube.com/watch?v=otMEC03ie0g
| whartung wrote:
| No mention of Zoomracks? https://en.wikipedia.org/wiki/Zoomracks
|
| Usually the go to early example of a zooming UI.
___________________________________________________________________
(page generated 2024-04-15 23:00 UTC)