Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Design #1

Open
bvssvni opened this issue Jun 10, 2024 · 0 comments
Open

Design #1

bvssvni opened this issue Jun 10, 2024 · 0 comments

Comments

@bvssvni
Copy link
Member

bvssvni commented Jun 10, 2024

The goal with Luc is to create one app where users can read and edit text, images, audio and video.

Luc is kind of like a browser for open multimedia content, but simpler and designed for creativity.

Goals

  • markdown compatible
  • editing
  • navigation
  • search
  • interactive game client/server
  • Dyon scripting

Markdown compatible

Text is markdown compatible and stored locally in folders.
This allows editing the text using other applications.

Markdown compatibility preserves text in a human readable format.
It also helps when using version control.

Editing

A Luc page consists logically of non-overlapping rectangles that display some content.

The content can be modified by holding E and pressing the mouse button on the box to edit.
While holding E, the border of the rectangle will be displayed while the mouse is hovering over it.

New content can be added by holding N and pressing the mouse button between boxes.
While holding N, a dummy box is displayed between the boxes where you insert the new content.
After pressing a mouse button, a popup window helps you decide what kind of content you want to create.

Navigation

Luc contains tools to help the user navigate the content.

For example:

  • folder and files explorer
  • options for inserting navigation menus onto pages
  • preview of Luc pages to quickly navigate documents

Search

One can search content in Luc.

  • Page-only search
  • Folder-only search
  • Project-only search
  • Customized search

Interactive game client/server

When creating an application with the Piston game engine,
one can use a LucWindow::new("luc://<url>") to host the screen within Luc.

Luc receives render frames and sends user input back.

This will lead to lower frame rates than running in the native application,
however it might be sufficient for simple development tasks or interactive demos.

Dyon scripting

Instead of generating content directly from e.g. text or images,
one can use Dyon scripts to generate content procedurally.

Luc is also integrated with a Dyon api over the Piston game engine,
so users can write simple games interactively, without needing to compile code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant