Tebibyte Media's September in Review

This September, Tebibyte Media and its Network have experienced both growth and loss; however, it's looking up for us: Network membership has increased by twofold.

Our staff has been working hard to provide helpful resources and useful pages to accelerate the growth of and to sustain the Network.

The Network has also been abuzz with progress: the programming language ARF now has a working parser; Canary, the postmodernist GUI framework, is looking forward to its debut in the casual desktop customization scene; Cyborg's graph editor, Ramen, is as exciting in its potential as it is in its speed of development; and Hopper, the Minecraft mod manager, has restructured and clarified its goals to accomodate more sources of mods and to build on its mission to be a global package manager.

Project Updates

Through the past few weeks, our platform managers worked on the main site, polishing it to better fit web standards and accessibility guidelines; they also redesigned the site to fit our own stylistic preferences. More useful and relevant content was added, filling out the previously mostly empty pages.

For example, our about page was expanded with information about the structure of Tebibyte Media, including information about our staff. Additionally, the Network application was condensed to make it easier to apply. The new application information can be read on the Network page.

Network Updates

Tebibyte Media would like to wish Nexus, the social VR engine, adieu as it has left the Network this month due to a misunderstanding of the expectations for a Tebibyte Media Network member.

ARF, a new programming language project, has had its parser implemented, which reflects critical progress made in its development. Although the parser is considered done, no part of it is final, and changes to it will continue to be made as necessary. ARF's semantic analyzer has also seen some work. This is another major portion of the compiler, and when it is complete, the compiler itself will be nearly finished.

This month, there have been several experimental conceptual and syntactical changes made to ARF in pursuit of a delicate balance between expressivity, parsability, and conceptual simplicity. In the coming months, it will be determined which of these changes will make it into the language, and which will be left out.

Canary, the post-structuralist graphical user interface (GUI) framework, is nearing its first alpha release. Documentation describing the theory and principles of Canary's design are slowly but surely being completed and the necessary features for Canary's use in a real-world application are being implemented. This includes a test harness for assistance in developing scripts and the message-passing system.

In order for Canary's scripts to be used by a host, the scripts must have a way to signal state changes, such as button presses. Canary does this with a message system that allows scripts and the host to send plain byte arrays back and forth. It is the responsibility of the script and host programmers to agree upon domain-specific formats of these messages. Each kind of Canary GUI will require a different protocol specification, depending on what data each GUI requires. Thus, Canary relocates concrete GUI architecture from the monolithic host library into communal userspace.

A preview of Canary's test harness and the Sword Art Online demo script.
A preview of Canary's test harness and the Sword Art Online demo script.

In October, Canary's main priority will be getting it to the point where it can both attract and sustain attention from its target audience: Linux desktop customization enthusiasts. First, the documentation book (made with mdBook) will be finished so that it can effectively introduce the goals and principles of Canary without the maintainers needing to hand-hold contributors. Then, a practical, batteries-included Canary-based program will be written and promoted on mainstream social media like the subreddit r/unixporn. Specifically, the plan is to create an MPRIS-compatible media controller program with an accompanying Canary script. This program will function as an everyday music player widget and insert a prominent Canary application directly into its users' regular workflow. Beyond that, Canary's development workflow will largely be determined by whatever the general public decides to do with the base Canary implementation.

Cyborg, the real-time rendering engine, is rapidly establishing essential groundwork for artistic use. Its node graph editor, Ramen, has been rocketed from theory to practice. Soon, a fully-functional, interactive, node-based material editor will be completed, and Cyborg's team is very excited to present it when it's ready!

A node editor is a tool to author complex logic and mathematical expressions without the need to know a traditional programming language. Blender, Unreal Engine, and Unity all have a variety of node editors, which are used for materials, geometry generation, or even game logic. Cyborg is using its custom node editor, Ramen, for materials and geometry, but Cyborg's team is also developing it with the option to be used independently of Cyborg, for the benefit of free software, game development, and visual artistry as a whole.

Ramen's development has been smoother and faster than expected. Its type definitions and utility functions are nearing finalization, including full undo/redo support, thanks to the use of the Command design pattern. To integrate Ramen into Cyborg's editor, the team is working on a frontend using egui, a popular GUI Rust crate. Ramen's frontend editing code and backend graph logic are decoupled so that a program using Cyborg can load Ramen-based shaders without also bundling the GUI code that is needed to edit the graphs at runtime.

A preview of Ramen's egui frontend.
A preview of Ramen's egui frontend.

The next steps for Cyborg are to integrate Ramen into its editor and to add shader-specific data to the node graphs. Then, another of Cyborg's subprojects, Cortex, will convert Ramen's node graph into a functioning GPU shader that can render in the editor's preview window. It's only a matter of time before artists will have a shader-authoring experience with Ramen on par with the mainstream 3D programs from which it takes inspiration. An accomplishment of this scale and in this amount of time would not be possible for a small, non-profit effort like Cyborg without the encouragement of the Tebibyte Media community, the help of free software such as egui, and the power of the Rust programming language.

Hopper, the package manager for Minecraft, has been slowly but steadily improving during the last month. The developer team received a new contributor and the goals of the project have been redefined and expanded; since Modrinth, the currently only supported package repository in hopper, added support for resource packs, mod packs, and plugins, hopper is implementing package management for them as well.

In the long term, the development team is also planning on creating a build system for source repositories so that free software mods can be compiled on the user's system upon installation and update. Its exact specification has not been decided on yet, but it is likely it will be based on PKGBUILD, Arch Linux's build system.

Next Month

Tebibyte Media is still looking for graphic designers and editors to help us with the Project. Anyone interested should send an e-mail to apply@tebibyte.media that includes details such as availability, the reason for interest in the Project, and any other important information regarding the position being applied to. As for the future, our new long-term goal is community-building and networking to potential members, hoping to expand at the same rate as we have been with a new total of four Network members.