Skip to content

A collection of graphical terminal-based apps.

Notifications You must be signed in to change notification settings

crystaltine/vis

Repository files navigation

Vis

A collection of app remakes in the terminal. This is a recreational project and these apps are only intended for casual use.

Design Doc (Incomplete as of 1:43 AM, Jun 9): https://docs.google.com/document/d/13SuaRq5GfgQj59z0zWa9jua5XY7AGnjDIIRWVS-Cgh4/edit?usp=sharing

Instructions for Running

pip install -r requirements.txt
python main.py

Viscord

Viscord is a small demake of the popular chatting app Discord. It uses our own backend and user accounts, and allows for text chatting, voice chatting, and video streaming.

More README info coming soon. For now, check out our design doc

Untitled Geometry Dash Remake

Using ANSI color codes and block elements listed here to make the screen look like an actual game. Surprisingly, with correct optimizations, we have achieved framerates of around 30 per second (in most cases - but further optimizing the renderer is high priority)

Update! The game's rendering engine is now a standalone library!

Try it now (hopefully it isnt broken):

pip install pixelterm

PyPI Project

Demo video

vis_gd-b1.5.1-demo.mp4

Demo Video 2 (Acheron)

Untitled.video.2.mp4

More README info coming soon. For now, check out our design doc

Visage

A scrapped framework inspired by HTML for creating graphical user interfaces (GUIs) inside modern terminals.

In the original iteration of the project plan, we were to create a framework that could support various elements common to webpages and desktop apps, like input boxes, buttons, divs (containers), etc. It would have handled all the things on web browsers that we often take for granted, such as automatically scrolling, determining which elements to render, which elements to render partially, and which elements to hide completely.

However, as features were added, it became increasingly complex and harder to learn for other contributors to the project because only one of our group members was actively developing it. Development of a fully-featured framework that can handle all edge cases also proved to be extremely tedious and time consuming, and eventually it was determined that it would be better not to develop a full framework for the narrow use cases that our project would require.

However, a lot of time was still invested into Visage's development. Here are some functional features:

  • Basic HTML-like elements (div, input, button, text)
  • Dynamic updates and efficient rerendering
  • Keyboard event listener system with keydown and keyup events
  • Flexible CSS-like style definitions
  • Dynamic positioning, allowing for style syntax such as calc(50% - 5px)
  • Capability to define pseudo-ReactJS-like components using functions and directly instantiating element classes
  • Automatically managed component tree which can be navigated with tab/arrow keys. However, navigation is still randomly ordered as the algorithm for determining the next closest element was never implemented.

Examples of usage

An exmaple of a login screen An example of a login screen made purely with Visage

An example of a settings page An example of a fully functional user settings customization page

About

A collection of graphical terminal-based apps.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published