Lion has also given a demonstration during WikiMeet 2021-04-03.
Download an archive from dropbox and unzip it somewhere.
Make sure to have python3 and pip installed. On a UNIX (GNU+Linux, BSD, Mac, etc) system, you probably already have python3 installed. If not, you may find some help on Python’s download page.
On Ubuntu and its derivates (Linux Mint, etc) this is a confirmed way to install pip:
sudo apt install python3-pip
When using different package managers (pacman, zypper, etc), try pip, pip3, python-pip3 or something like that. There must be a pip.
Now, you need to get MiniCubes’ dependencies. There are two: pyperclip (for copy and paste), sdl2 (for graphics). This is how you install them on a UNIX system:
sudo pip3 install pysdl2 sudo pip3 install pyperclip
Depending on configuration, you may need to use pip instead of pip3, but that’s unlikely.
Now, you are ready to go. Navigate to the unpacked directory and execute the program:
A black window shall appear on your screen.
When you open MiniCubes, you are offered a tutorial. Please complete it.
LionKimbro: One thing important I forgot to put in the tutorial- If you hold down the shift key, you can copy a node just by dragging it. It’s insanely useful, because it makes the Tray far more useful.
If you manage to run MiniCubes, please write a report here.
Well, I’m the one who asked to publish it originally, makes sense that I’m the first who tried it out. I have described the installation process I’ve done above, had zero problems.
My first impression: readability is not present at all. I have a bad vision, as you may have noticed by looking at my glasses. Small white weird monospace letters on pitch black background were a pain to look at. Really uncomfortable, trust me. You should have probably used a toolkit like Qt or GTK, so users’ colorscheme and font choices applied.
I’ve completed the tutorial and quit the program. Well, it was kinda fun, but I couldn’t really enjoy the fun because of the visual design, yeah.
Some things I noticed:
I hope Lion looks into the things I noticed.
I liked that you linked this page there There’s also a mention of Lion wanting to see projects inspired by the MiniCubes concepts. Well, I might as well do something, who knows.
Let’s see what others have to say.
I got it working. I just used pip3 install pysdl2 and pyperclip (no sudo required) and ran it, no problem. No crashes so far.
SunirShah has once asked: “How long did it take you to build?”
Lion has implemented the actual program in roughly three months, but he wrote a lot of underlying code over a period of years, such as the user interface library. Also, a lot of the ideas in the program were experimented with in other programs.
Lion: “Within just a few days, I had the basics working. Then in a month, I had integrated text editing. In the next month, I worked out navigation copy/pasting cubes to the clipboard, and various command forms executing within cubes, and in the third month I was experimenting and added more capabilities.”
> log minicubes 2020-01-17 000 (00) -- remarkably quickly completed 1st version 2020-01-17 001 (01) -- ok, you can now preview, but it's not working quite right 2020-01-17 002 (01) -- fixed, so that full text displays 2020-01-23 003 (02) -- basic version of hooked up text; some errors around the edges though 2020-01-23 004 (02) -- fixed delreg() by using CLINE and CX, rather than Y & X. 2020-01-28 005 (03) -- many changes; much better; can't describe now 2020-02-17 006 (04) -- EDIT, TEXTx2, cube cloning, selection boxes, data autoupdate 2020-02-24 007 (05) -- copy/paste cube's content to/from clipboard 2020-03-04 008 (06) -- changed save/load system, so that there's now a Tray 2020-03-04 009 (07) -- OVER commands, to draw when mouse is over 2020-03-05 010 (08) -- UNSTABLE: wrote a DSL for X-Y coordinates, but I'm not convinced, and it's not totally working 2020-03-05 011 (09) -- PARTIAL:first part of ghost implementation: cut/copy, paste into ghost space, ... it's working 2020-03-05 012 (10) -- UNSTABLE: mid-implementing ghost drag, but now I have an idea to simplify the cubes system into a tagged list... 2020-03-05 013 (11) -- PARTIAL: first part of implementing new tagged cubes system; load/save working 2020-03-06 014 (12) -- many changes: can drag, cut, and paste; new internal cubes management system made it possible 2020-03-16 015 (13) -- fixed focus problems, added SELECTED:, FOLDER, START 2020-03-20 016 (13) -- added $TEXT 2020-04-05 017 (14) -- you can now CALL a function defined in a PYTHON: block
Sunir: “I’m really impressed you did this in 3 months.”
One of the biggest ideas I have in my head for any information system is providing some underlying rational framework for relating what is otherwise the tower of Babel. If you can rationalize what was unrationalizable, you can unlock a lot of insights.
In my imagination, it’s not that the cubes need to themselves immediately force an orderly system, it’s that they are obvious and natural for people to start organizing themselves. And then the system can quietly and simply start organizing information based on the grid.
I’ve moved contents from the older comment all around the document, I find it be better this way. I couldn’t fit Sunir’s comment above anywhere though.
Inspired by MiniCubes, I created a small demo of how a MiniCubes-like environment could look like. See https://lesarbr.es/aspergillus/ The grid is 3*3 because I didn’t want to fill in more cells. It is totally useless but is fun.
Alex Schroeder: One of the ideas I’m taking from the Mini Cubes demo is that a cube is what it contains, and the texts and graphics it projects outwards: the labels and arrows and frames are important to advertise the cube’s content.
Alex Schroeder: Here’s an idea for collaboration: when using Gridmapper, you can “join” a “room” with your map, and if other’s “join” you there, the room gets a copy of all the commands send, copies them to all the participants and allows for synchronisation. Gridmapper being a SVG+JS solution, the Gridmapper Server uses web sockets. Source. Server UI (very simple). Gridmapper (put the name of a map in the text area and click Join).
The key is that the server doesn’t store the map and yet every participant has a copy. (Well, in this case the server could log the maps being shared, so it’s not cryptographically secure.)