mbrlabs / lorien Goto Github PK
View Code? Open in Web Editor NEWInfinite canvas drawing/whiteboarding app for Windows, Linux and macOS. Made with Godot.
License: MIT License
Infinite canvas drawing/whiteboarding app for Windows, Linux and macOS. Made with Godot.
License: MIT License
Feature/enhancement description:
Hi to the contributors! First of all, amazing work. This is an exciting project. Here are some ideas that might help, I hope you find them useful.
Shortcut keys.
Although they should be programmable, I would recommend copying industry standards. If I jump into say Aseprite I have the same keys as Photoshop and I can move at ease. Space and click for grab and pan. B - Bush. E - Eraser. L - Line. G - Fill paint. Shift with brush activated should turn into real time line. Etc. (aseprite has the easiest to understand if you want to check their system)
Mouse and Navigation.
Mouse wheel should zoom in and out. (already does)
CTRL Mouse wheel should make cursor / brush larger / smaller.
Press and hold Mouse Wheel (button 3) and pan (same as Space and left click to pan)
Zooming in I should be able to continue with smaller and smaller brush sizes. So I can make use of that infinite zoom type / vector type effect. I could have a planning chart this way with all the notes in each little square I draw. Images inside. Text etc. Smaller and smaller it goes.
Paint issue:
When drawing, if I try and draw a box say, often the corner will 'bend' behind my brush. IE: It's not creating a new vector point at the time I move the brush 90 degree. So I get a box with beveled corners. It should recognise a hard turn is occurring and add a point at that moment to keep the clarity of the shape.
Other:
Antialiasing is too blurry on the painted lines. I turn it off and it looks WAY better. Maybe a simple 1 pixel AA or similar? I'm not sure but it's too much at present.
I hope these points help. I love your project and am excited to see it happening.
Hello,
i am using Lorien as a Paint replacement to quickly design new levels for my game with my drawing tablet. Thank you for developing it and making it open source....i really love it! I didn't even know Godot could do that.
I was just wondering if it is possible to add adjustable pressure because i need to press pretty hard on my tablet. Thanks
Feature/enhancement description:
It's a common feature in CAD software to be able to select elements based on "partial" or "total" selection.
In FreeCAD, dragging the selection rectangle from right-to-left will only select elements that are entirely contained within the selection rectangle.
However, dragging the selection rectangle from left-to-right will select any element entirely or partially contained in, or "touched" by, the selection rectangle.
Having this sort of functionality for the selection rectangle would be very useful and more powerful than how it currently operates.
If, for example, I have two overlapping elements, one larger than the other, it can be difficult if not impossible to select the larger element without selecting the smaller element as well using the current selection tool, but "partial" selection makes this very easy.
(Also, I don't want to create a separate issue for it, but it currently seems impossible to select an element by simply clicking on the stroke. It seems you have to select it inside the rectangle. So, that's another minor enhancement that would be nice to have.)
Thanks for developing this software! I'm already using it almost every day as a replacement for Milton, and it works very well. I'm not sure if I explained this feature very clearly, so please ask questions if you have any.
does it have a plan with Android or IPad?
Feature/enhancement description:
load("res://UI/Themes/[the theme name]/[the file name].tres")
, where the file name can be 'theme', 'style_tab_active', etc.theme_changed(theme_directory)
signal to Settings, and connect to it from Main.gd, ProjectTab.gd, and in general any object that needs to update when the theme changesFeature/enhancement description:
Currently, our color picker is great, but not good for quickly changing commonly used colors:
Inkscape has an amazing color picker and I think Lorien could really benefit from implementing something like this:
While it's not necessary to do it exactly like that, the colors themselves and the idea of putting commonly used colors somewhere easy to access is a really great thing to have.
First off, thanks for the awesome tool!
I really like the simplicity of the current brush tool, but I noticed that it seems to be very sensitive to the perturbations of my pen when I use it with my drawing tablet. It might be useful to add some configurable smoothing options in order to allow smoother strokes. There are several line smoothing algorithms that could work, here's a discussion of a few: https://stackoverflow.com/questions/5829437/efficient-line-smoothing-and-or-simplification.
Lorien version:
Current Github version
OS/device including version:
Manjaro Linux
Issue description:
When changing the default canvas color in the settings the background color is still gray by default after relaunching the app.
Steps to reproduce:
Feature/enhancement description:
Title. I did bring this up on the reddit, but felt it should be on here for record. Rotation isn't too necessary atm, but I do feel that scaling is definitely something that should exist.
Also, side note, but is the eraser not actually erasing? Is it just the color grey?
Lorien version:
Latest commit on player branch
OS/device including version:
Operating System: Arch Linux
KDE Plasma Version: 5.22.4
KDE Frameworks Version: 5.84.0
Qt Version: 5.15.2
Kernel Version: 5.13.8-arch1-1 (64-bit)
Graphics Platform: X11
Processors: 8 × Intel® Core™ i5-8265U CPU @ 1.60GHz
Memory: 15.5 GiB of RAM
Graphics Processor: Mesa Intel® UHD Graphics 620
Issue description:
When the player is spawned, they have collision with both draw and erase paths, which looks unnatural.
Steps to reproduce:
Draw with the eraser.
Spawn player and move them to where you have drawn with the eraser.
Right now the export functionality essentially acts like a screenshot, only exporting what is visible on the window. I believe most users would prefer the default functionality to be to export the whole canvas, with the corners set to make sure nothing is cut off. They can then use a screenshot tool to take a picture of the visible space on the canvas if they want.
A tool to quickly create shapes lice rectangles or ellipses.
Usage:
Additional keys:
Ctr → squares and circles.
Shift → create from center.
Feature/enhancement description:
I would love the option to set these two values:
TARGET_FPS_FOREGROUND
TARGET_FPS_BACKGROUND
I realize that this is not something the project needs currently, but I had the idea for it so I'm suggesting it.
Instead of storing color separately for every stroke:
Allocate a region of the indices (say, 0x00 - 0xFF) for predetermined, heavily used colors (Ideally, the ones being suggested by the color picker).
In ppInk, you can set up 9 different colours, corresponding to the hotkeys 1 through to 9. Each color can also be given a "time to live", after which it fades away. This is very useful for recording videos. The persistent stuff can all be one colour (e.g. blue) and the stuff that just needs to be there temporarily can be another colour (e.g red). You can configure the red to fade away after 10 seconds, which ensures the screen never gets cluttered with annotations that were only helpful in the very short term. It would be quite helpful if Lorien were to implement this feature.
In order to make it easier for users to build or package this project, would it be possible to add the export.cfg
and export_presets.cfg
files to this repository?
Godot supports exporting projects directly from the command-line using this syntax: --export <preset> <path>
(The <path>
argument overrides the export_path
option in export_presets.cfg
)
So having those files included in the repository would allow users to clone and export the project automatically, such as through a script
Shortcut to center the view in the mouse cursor, so when we are sketching a diagram or something like it, it is not so troublesome to keep scrolling the view everytime.
Centering it will make the whole task more productive
EDIT: I could try to implement this myself, but I would need some guidance. If you can point me a direction, I would love to help!
To Remember The Last Opened State Of The Window
The app right now does not remember it's last window sizing state, and always opens in default size. On a UHD window, where the UI is already tiny, this just adds another obstacle to working within the app quickly.
If Lorien is closed full screen, it should open full screen.
Use case: Quality of life and happiness using the app. Quick access to working in the app without interruption.
Related: To Remember The Last Opened File and Auto Load It
Use case: Be able to continue working in the last file opened, as Whiteboards will always be constantly opened and new content added, perhaps many times during the day. If the app closes (or crashes), the file is forgotten and the user must open the file again.
Line 10 in 56cc624
I hit on this problem when I tried to run my test script to upgrade project to 4.0
Lorien version:
Git main
OS/device including version:
Manjaro Linux, xfce
Issue description:
When Lorien is unfocused and i switch to it from another program, the brush tool sometimes won't activate. To fix it i have to click on a ui element like the menu bar. Then it works.
When you go into settings and attempt to change the default background color. It does not affect opening on a fresh file or any previous files. Brush color does change, however, so that is functional.
Feature/enhancement description:
Hello,
I'd like to suggest using Weblate for translations, makes it much easier for the translators.
I would then add Swedish. :D
Zoom In / Out Using The Keyboard/Pen
ALT- Pen already 'pans' across the board, so that is good, but the Zoom needs to be consistent with using the pen and keyboard as well, and could mimic other software interfaces that users are already familiar with and expecting to work the same way.
Photoshop, Krita, Affinity Designer:
Spacebar-Down = Pan image
Ctl - Spacebar + PenDown + Up/Down Movement = Zoom In / Out
Pretty sure this is common for many other applications, with some variation.
Note: I don't consider this an enhancement, but a basic UI interface requirement :D
there is significant pop out and fading for smaller brush sizes at higher zooms. this is solved by setting opengl hint as the anti aliasing style. I suggest that it is made the default setting.
Lorien version:
Lorien v0.3.0-dev
Tested on Code from Commit:
09cea89
OS/device including version:
Windows 10 x64 | v10.0.19042 Build 19042
Issue description:
Lorien Crashes When scaling window as small as possible
ERROR: get: FATAL: Index p_index = 1 is out of bounds (size() = 1). At: ./core/cowdata.h:156
Steps to reproduce:
Scale the window as small as it can go. It will hang for a few seconds then crash
Now, It not support chinese file path, when save or open white board. I wish this project can support chinese file path in futher, thank you.
Lorien version:
Lorien v0.2.0
OS/device including version:
Windows 10 Pro Version 1909
Issue description:
In the Color Preset menu (top right), selecting a new color and clicking the plus button closes that color window instead of adding a new color 99% of the time. It works eventually if there are no other saved colors, but once there's at least one color saved no more will save, and enough attempts at adding another causes the program to eventually crash.
Steps to reproduce:
Example demonstration.
https://gyazo.com/ea22705f1ef3c8c12d98a1565d55542e
I was able to get that ^ previous color to save eventually, but it proceeded to not save further colors.
Lorien version:
v0.1.0
OS/device including version:
Device Surface Pro 7
Processor Intel(R) Core(TM) i5-1035G4 CPU @ 1.10GHz 1.50 GHz
Installed RAM 8.00 GB (7.60 GB usable)
System type 64-bit operating system, x64-based processor
Pen and touch Pen and touch support with 10 touch points
Issue description:
Steps to reproduce:
Full screened, zoomed in and drew around as much as possible however not all the screen was drawing.
Hey! First off, love the tool. I had switched to linux as my daily driver and I've been missing an app like this that looks nice and feels good to use. Coming from Windows, there is a program called Milton which is similar in a few ways. That said...
Feature/enhancement description:
I think it would be useful for Lorien to remember the last session(s) the user had open. This removes the need for a "save" nag screen and, in my opinion, helps the simplicity and non-intrusiveness aspect of Lorien.
I can think of two ways to implement this off the top of my head:
default
session/file that is saved in the user://
directory. This could be most useful for people like me who like to sketch on a single canvas and don't use different files much.user://
or the custom directory set in the settings on quit, perhaps with a setting to turn it on or off. This would eliminate the "save on quit" dialog entirely, potentially at the cost of higher load if the user has a number of canvases open.I was going to fork this and implement it in the near future anyway and wondered if this is something you'd like to have in the base repo. Let me know what you think!
Feature/enhancement description:
Hi, it's me again!
Lately I've been (successfully) using Lorien with my Huion tablet to make some sketches and taking some notes during my engineering study sessions. So thanks again for making this software and letting us contribute.
Would you consider opening a Discussion section here on this repo?
I've been using it quite a lot for some of the plugin I'm co-developing (as this example) and I've found it very useful in order to discuss about features and stuff directly with users, without having the necessity to have a discord server, or receiving emails, or using Issues.
I'd like to propose some features, but first I'd like to understend if they are even relevant to your roadmap or not, so having a direct discussion would be helpful. Thanks!
Feature/enhancement description:
I am double clicking on a .lorien file in windows explorer. It opens the "open with" dialog and I select lorien.exe.
When I try to open the .lorien file it should open the file in lorien. It instead opens a new untitled file in a new window of lorien.
I am running windows 10 pro 21h1
The program should be able to open a supported file by selecting the lorien.exe in the "open with..." dialog.
Lorien version:
v0.2.0
OS/device including version:
MacBook Pro (13-inch, 2019, Two Thunderbolt 3 ports)
Processor: 1,4 GHz Quad-Core Intel Core i5
Memory: 8 GB 2133 MHz LPDDR3
Graphics: Intel Iris Plus Graphics 645 1536 MB
running BigSur 11.2.3
Issue description:
When opening application it fails and gives error:
Lorien is damaged and can't be opened
The app has been modified, and its code does not match the original signed code. The app may be broken or corrupted, or it may have been tampered with
Steps to reproduce:
Download mac release and try to open
Lorien version:
v0.3.0
OS/device including version:
Manjaro Linux
Issue description:
When using the line tool to draw lines, it's hard to select them afterwards because you have to select either the start or the end. But if you try to select the line in the middle it wont work. I'm working on subdividing the line so that there are more points (still not many!) so you can select it better.
Feature/enhancement description:
It would definitely be useful to have this to make Linux distribution easier. There's a Godot runtime that can be used, but I was having some trouble getting it set up as there is no documentation yet.
Feature/enhancement description:
Title explains it self although this goal might be quite a bit in the future
Tested on Linux Ubuntu 20.04.
Feature/enhancement description:
Allow for more fine-grain selection of objects. We should be able to box-select part of an object and have that object selected. For example, here I box-select the end of an arrow (arrow head and arrow line) but upon mouse release they are not selected.
The only way to select that arrow is to bounding-box select the entire object, which includes other objects I don't want to select...
Once objects have been selected, there seems to be no way to unselect individual objects in that collection. If I shift+mouse-box-select one selected object in a collection of selected objects, I would expect that one object to be unselected.
Feature/enhancement description:
Self explanatory. Sometimes it's needed to paste big text without manually writing it.
Feature/enhancement description:
Fullscreen enhances the "distraction free mode". I have a local branch of Lorien with fullscreen support and I think many users may find it useful.
If having fullscreen follows Lorien's philosophy, I could make a PR. Let me know!
Lorien version: 78c06a8 or release v0.2.0
OS/device including version:
KDE neon Testing Edition 20.04
Nvidia driver: 460.80
Issue description:
If you draw for long enough with pressed left mouse button the line you drew disappears.
Demonstration here: https://www.youtube.com/watch?v=LDZc1JiYunI
--- Debugging process started ---
Godot Engine v3.3.2.stable.official - https://godotengine.org
OpenGL ES 2.0 Renderer: GeForce GTX 1650/PCIe/SSE2
OpenGL ES Batching: ON
Loading i18n file: res://Assets/I18n/en.txt
Loading i18n file: res://Assets/I18n/it.txt
Loading i18n file: res://Assets/I18n/es.txt
Loading i18n file: res://Assets/I18n/de.txt
Stroke points: 1571 (517 removed by optimizer)
Stroke points: 1592 (739 removed by optimizer)
Stroke points: 19 (7 removed by optimizer)
Stroke points: 17 (8 removed by optimizer)
Stroke points: 1237 (918 removed by optimizer)
Steps to reproduce:
Just draw a line for long enough and it will disappear
Bucket Fill option:
This is a great app, but I am really missing the option to fill an area with a single colour.
It would be nice to be able to choose an image (PNG or JPEG) to use as a 'repeating texture' instead of a background color. This would help people who want a more interesting background texture. Personally, my use case is a bit different. I want to be able to set the background to an image containing a math problem to solve (e.g. it might say "Solve x^2 - 1 = 0"). For my particular use case, it's very important that the image remain un-stretched; I'd like it displayed pixel-by-pixel.
In some whiteboard apps, like on whiteboardfox.com, the eraser is very 'dangerous' and the moment it touches an object the whole object just vanishes. It would be helpful to have a tool like this, either replacing the current eraser or implemented as a separate tool. For the time being, simply using the selection tool and pressing 'delete' is a good option.
Feature/enhancement description:
Add the ability to create text boxes.
Although this is primarily a drawing app, a really cool feature would be the ability to create text boxes, almost like how in photoshop you can draw, but also create text boxes.
Godot already has the text labels, so it might just take some readjusting if implemented.
Text boxes allow users to kinda draw their ideas, then label what they drew in a clean font, especially if their handwriting is messy like mine.
Lorien version:
0.2
OS/device including version:
Manjaro Linux
Issue description:
When switching to Spanish in the settings the UI gets smaller. I think i know how to fix it but i'm still struggeling a bit with Github/Git. I am going to upload a fix if i figured it out though.
Steps to reproduce:
Change language to spanish
Lorien version: 0.2.0
OS/device including version:
Operating System: Arch Linux
KDE Plasma Version: 5.21.5
KDE Frameworks Version: 5.82.0
Qt Version: 5.15.2
Kernel Version: 5.12.9-arch1-1
OS Type: 64-bit
Graphics Platform: X11
Processors: 8 × Intel® Core™ i5-8265U CPU @ 1.60GHz
Memory: 15.5 GiB of RAM
Graphics Processor: Mesa Intel® UHD Graphics 620
Issue description:
When holding left click to drag a rectangle with the selection tool, if right click is pressed the selection is cancelled. The expected behavior in this case would be for the selection box to disappear, but it remains in it's last state before the selection was cancelled until another selection is started.
Steps to reproduce:
Start dragging a selection rectangle and, without letting go of left click, press right click.
I like that you provide a .dmg for installing Lorien to macOS, but it would be even better if there would be the typical 'drag the application to the applications folder'-experience.
Some users on Reddit reported that on high resolution screens the UI is very small (the UI is designed around 1920x1080 right now). I think the best way to handle this is to autodetect the resolution and set the ui scale appropriately. But i would also add an option to manually set the scale in the settings.
Add keys for:
Also, currently it seems that there is a ERROR_NOT_IMPLEMENTED key, but then in the theme selector, "(not implemented yet)" is hardcoded in english. For this, first of all there should be code for translating the OptionButtons' items. Then I think ERROR_NOT_IMPLEMENTED should be changed to a more general NOT_IMPLEMENTED, as it would be used in places other than errors. Finally, it should be possible to have more than one space separated keys in a same string, and translate them separately. This would allow for, for example, "THEME_LIGHT NOT_IMPLEMENTED".
I think the least cumbersome way of implementing that would require a method in Utils.gd for translating strings that would, assuming that keys cannot contain spaces, translate each space separated word on it's own. This could also very easily accommodate for the use of placeholders in translations, such as "Autosave not yet implemented for (CURRENT_PROJECT_NAME)" or the such.
Finally, I would replace the manual addition of new localizations with an automated one by adding a NAME key at the top of every localization file and adding it to the language OptionButton, as well as replacing the const LANGUAGE_ID_*
s and const LOCALE_*
s with an array of locales created automatically at startup.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.