new network application #14

Merged
emma merged 11 commits from network-nexus into main 2022-08-29 22:48:17 +00:00
5 changed files with 376 additions and 46 deletions

View File

@ -9,23 +9,25 @@
<meta content="width=device-width, initial-scale=1" name="viewport" />
<meta content="interest-cohort=()" http-equiv="Permissions-Policy" /> <!-- FUCK GOOGLE -->
</head>
<header><img id="logo" src="/assets/img/TiB-network.png" width=25% style="vertical-align:top" /></header>
<body id="about">
<nav><h4 style="text-align: right"><li class="home"><a href="/">Home</a></li> | <li class="blog"><a href="/blog">Weblog</a></li> | <li class="about"><a href="/about">About</a></li></h4></nav>
<p>Tebibyte Media was started in 2020 by <a href="staff/emma">Emma
Tebibyte</a> in order to create a community of technology-savvy
individuals who share faer values. The original goal was to propagate
free software values, and that goal heavily influenced the
development of the Project's new goals. The loose group
quickly became a project dedicated to bringing together other,
like-minded projects and networks.</p>
<p>Today, Tebibyte Media is an aspiring group of free software and
open-access enthusiasts who believe that all information should be
free and publicly accessible. To that end, we promote, share,
connect, and support like-minded developers and artists whose work
progresses toward this goal. Read more at our
<a href="/blog/hello-world">launch blog post</a>.</p>
<header><img id="logo" src="/assets/img/TiB-network.png" width=25% style="vertical-align:top" /></header>
<nav><h4 style="text-align: right"><li class="home"><a href="/">Home</a></li> | <li class="network"><a href="/network">Network</a></li> | <li class="blog"><a href="/blog">Weblog</a></li> | <li class="about"><a href="/about">About</a></li></h4></nav>
<p>
Tebibyte Media was started in 2020 by <a
href="https://emma.tebibyte.media">Emma Tebibyte</a> in order to create
a community of technology-savvy individuals who share faer values. The
original goal was to propagate free software values, and that goal
heavily influenced the development of the Project's new goals. The
loose group quickly became a project dedicated to bringing together
other, like-minded projects and networks.
<br>
Today, Tebibyte Media is an aspiring group of free software and
open-access enthusiasts who believe that all information should be
free and publicly accessible. To that end, we promote, share,
connect, and support like-minded developers and artists whose work
progresses toward this goal. Read more at our
<a href="/blog">blog</a>.
</p>
<h3 id="faq"><a href="#faq">Frequently Asked Questions</a></h3>
<h4 id="wtf-is-a-tib"><a href="#wtf-is-tib">The question comes up
@ -35,7 +37,8 @@
Windows' usage of the SI prefixes instead of the proper IEC ones
is documented on <a href="https://en.wikipedia.org/wiki/Binary_prefix#Consumer_confusion">Wikipedia</a>.</p>
<h4 id="license"><a href="#license">How is your site licensed?</a></h4>
<h4 id="license"><a href="#license">How is your site
licensed?</a></h4>
<p>The Tebibyte Media website is free software: you can
redistribute it and/or modify it under the terms of the GNU
Affero General Public License as published by the Free Software
@ -52,27 +55,20 @@
The source code is available
<a href="https://git.tebibyte.media/meta/site">here</a>.</p>
<h4 id="hosting"><a href="#hosting">Who is your hosting provider?</a></h4>
<h4 id="hosting"><a href="#hosting">Who is your hosting
provider?</a></h4>
<p>The server hosting this site and its services is hosted on a
<a href="https://www.linode.com/">Linode</a> running
<a href="https://www.debian.org/">Debian 11</a> with the
<a href="https://www.fsfla.org/ikiwiki/selibre/linux-libre/">Linux-libre</a>
kernel.</p>
<h3 id="network"><a href=#network>Network Members</a></h3>
<p style="font-size:0.75em;"><i>For aspiring Network Members, please see our
<a href="/blog/hello-world#network-application">application
<h3 id="network"><a href=#network>Network</a></h3>
<p style="font-size:0.75em;"><i>For aspiring Network Members, please
see our <a href="/network#application">application
information</a></i></p>
<!-- <p><a href="https://ortusjournal.org"> [Insert their
description here, consult with them on their preferred description]
</a> [<a href="https://wordpress.org/about/">Freely licensed</a>
JavaScript; may contain
<a href="https://gschoppe.com/wordpress/plugins-and-themes-open-source/">non-free plugins</a>].</p>
<p><a href="https://embeddedscript.net">New Media artist Richard
Williams' website</a>. <a href="https://bibliogram.art/u/_remind_me_tomorrow">[see also]</a>
[<a href="https://www.gnu.org/philosophy/javascript-trap.html">
unlicensed JavaScript</a>].</p> -->
<p>See <a href="/network#members">here</a> for a list of
members.</p>
</body>
</html>

View File

@ -48,6 +48,10 @@ li.blog {
display: inline;
}
li.network {
display: inline;
}
li.about {
display: inline;
}
@ -64,6 +68,12 @@ li.about {
text-decoration: none;
}
#network nav .network >a {
pointer-events: none;
cursor: default;
text-decoration: none;
}
#about nav .about > a {
pointer-events: none;
cursor: default;

View File

@ -9,25 +9,23 @@
<meta content="width=device-width, initial-scale=1" name="viewport" />
<meta content="interest-cohort=()" http-equiv="Permissions-Policy" /> <!-- FUCK GOOGLE -->
</head>
<header><img id="logo" src="assets/img/TiB-network.png" width=25% style="vertical-align:top" /></header>
<body id="home">
<nav><h4 style="text-align: right"><li class="home"><a href="/">Home</a></li> | <li class="blog"><a href="/blog">Weblog</a></li> | <li class="about"><a href="/about">About</a></li></h4></nav>
<br>
<h3>Let's liberate information together.</h3>
<br>
<p>
<header><img id="logo" src="assets/img/TiB-network.png" width=25% style="vertical-align:top" /></header>
<nav><h4 style="text-align: right"><li class="home"><a href="/">Home</a></li> | <li class="network"><a href="/network">Network</a></li> | <li class="blog"><a href="/blog">Weblog</a></li> | <li class="about"><a href="/about">About</a></li></h4></nav>
<br>
<h3>Let's liberate information together.</h3>
<br>
<p>
Tebibyte Media works to promote free and libre projects in order
to provide support and publicity to member projects. Its members
enjoy benefits like management of server hosting, email management,
access to <a href=/blog/hello-world#benefits>our services</a>, and
any future benefits that come as a result of the expanding nature of
the project.
</p>
<br>
<p style="text-align: left"><a href="https://opencollective.com/tebibytemedia">
<img alt="open collective" src="https://opencollective.com/static/images/opencollective-icon.svg" /></a> <a href="https://liberapay.com/tebibytemedia/donate"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a></p>
access to <a href=/network#benefits>our services</a>, and any future
benefits that come as a result of the expanding nature of the
project.
</p>
<br>
<p style="text-align: left"><a href="https://opencollective.com/tebibytemedia">
<img alt="open collective" src="https://opencollective.com/static/images/opencollective-icon.svg" /></a> <a href="https://liberapay.com/tebibytemedia/donate"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a></p>
</body>
</html>

257
network/index.html Normal file
View File

@ -0,0 +1,257 @@
<!DOCTYPE html>
<html>
<head>
<title>TiB. | Network</title>
<link rel="stylesheet" href="/assets/TiB.css">
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
<meta content="Emma Tebibyte" name="author" />
<meta content="Tebibyte Media Network directory." name="description" />
<meta content="width=device-width, initial-scale=1" name="viewport" />
<meta content="interest-cohort=()" http-equiv="Permissions-Policy" /> <!-- FUCK GOOGLE -->
</head>
<body id="network">
<header><img id="logo" src="/assets/img/TiB-network.png" width=25% style="vertical-align:top" /></header>
<nav><h4 style="text-align: right"><li class="home"><a href="/">Home</a></li> | <li class="network"><a href="/network">Network</a></li> | <li class="blog"><a href="/blog">Weblog</a></li> | <li class="about"><a href="/about">About</a></li></h4></nav>
<p>
Tebibyte Media's <i>raison d'&#234;tre</i> is its Network. Our goal as a
Project is to foster the creation of that Network by extending
connections of solidarity between project who share the values we
believe are important in the new digital age.
</p>
<h2 id="specification"><a href="#specification">Specification</a></h2>
<p>
Tebibyte Media is composed of two distinct parts: the Network and
the Project. The latter is made up of myself, the individuals I
have recruited into the Project, and the infrastructure which supports
it; the former, the constituent projects and networks which are
associated with the Project. This distinction exists in order to
maintain an appropriate separation between the interests of these
entities to preserve the heterogeneity of these communities.
</p>
<p>
Like the components defined above, the members of the Network are
split into two separate categories:
</p>
<p>
A "project" in this context is an entity whose constituents are
individuals; a "network" is one whose members are projects
themselves, or a mix of projects and other networks.
</p>
<p>
A Tebibyte Media "project" does not necessarily have to be
a free software project; it can be anything involving strong
public engagement and iterative development. For example, a
post-modernist fiction-writing blog can count as a Tebibyte
Media project, as long as the work is ongoing and the blog is
shared at no cost to its readers.
</p>
<p>
A "project" could be an open writing publication requiring
attention or third-party reviewing, a free software project
looking for a userbase and pool of talented developers, or an art
project looking for exposure and contributors.
</p>
<p>
A "network" might be a webring, an online social hub for the
advancement of some idea or combined agenda, or an organization
which has multiple distinct components or internal projects but
which still works toward one main goal. A webring whose
constituents are all blogs that focus on physics would be an
example.
</p>
<p>
In the case of members creating new networks internal to Tebibyte
Media's influence, we take it upon ourselves to mediate and foster
that connection; we see these novel networks as partially our
responsibility.
</p>
<h2 id="responsibilities"><a href="#responsibilities">Responsibilites &
Assurances</a></h2>
<p>
Joining the Network is not a binding agreement. We would obviously
<i>prefer</i> it if members would adhere to the responsibilities we
ask them to adhere to, but we obviously cannot force them to, and
they are under no formal obligation to. In the same way, the Network
is set up in a way that prevents Tebibyte Media (the Project) from
using its power to harm members. All data and servers relating to
any given member's infrastructure are theirs, with administrator
privileges attached to those resources.
</p>
<p>
Every project in the Network will be represented by a single person
who will be appropriately selected by the members of that project.
For example, in the case of a free software project run by a BDFL,
the leader of that project would be that Representative or could
select someone else to represent it. Any member networks are given
the opportunity to provide as many Representatives as there are
distinct viewpoints in the community that network represents.
</p>
<p>
Every month, on the first day of the month, the Project will put out
a blog post detailing the month in review of the Network.
Representatives of each member entity will be responsible for
working with the Project Editors in order to write a short two- or
three-paragraph decription of the state of their member entity,
including what has been accomplished in the past month and what is
on the horizon. These sections will be submitted to the blog
repository using the git version-tracking system. Knowledge of this
system is not required but is preferred.Our editors will be able to
guide Representatives through the submission process and help with
any problems presented by this setup.
</p>
<h2 id="benefits"><a href="#benefits">Member Benefits</a></h2>
<p>
The Project takes upon itself responsibilities for each member of
the Network: we will provide infrastructure that your project needs
to succeed. Infrastructure currently available includes:
<ul>
<li>Website hosting</li>
<ul>
<li>Self-hosted <a
href="https://wordpress.com/">Wordpress</a></li>
</ul>
<li>A dedicated <a href="https://matrix.org/">Matrix</a>
room</li>
<li>An e-mail server</li>
<li>A dedicated feed channel on <a href="/discord">our Discord
"server"</a></li>
</ul>
Planned infrastructure includes:
<ul>
<li>Website hosting alternatives
<ul>
<li><a href="https://getzola.org/">Zola</a></li>
<li><a href="https://jekyllrb.com/">Jekyll</a></li>
</ul>
<li><a href="https://fosscord.com/">Fosscord</a> Guilds</li>
<li>Package maintenance (i.e. <a
href="https://mpr.makedeb.org/">MPR</a>/<a
href="https://aur.archlinux.org/">AUR</a>)</li>
<li>Documentation</li>
<ul>
<li><a
href="https://rust-lang.github.io/mdBook/">mdBook</a></li>
</ul>
</ul>
In addition to benefits, we also offer community coordination and
the benefit of the existing Tebibyte Media Network as a baseline
level of exposure.
</p>
<h2 id="members"><a href="#members">Members</a></h2>
<!-- <p><a href="https://farside.link/https://instagram.com/_remind_me_tomorrow">_remind_me_tomorrow</a>,
a platform dependent essay, hosted on Instagram, which deals with
the ways that The Digital has been made precarious over the past
several decades. Created by
<a href="https://embeddedscript.net/">Richard Williams</a>
<a title="Unlicensed JavaScript" href="https://www.gnu.org/philosophy/javascript-trap.html">[!]</a>.
Linked here using a free software frontend for Instagram.</p> -->
<p><a href="https://git.tebibyte.media/sashakoshka/arf">ARF</a>, an
experimental programming language.</p>
<!-- <p><a href="https://git.tebibyte.media/canary/canary">Canary</a> -->
<p><a href="https://git.tebibyte.media/nexus/nexus">Nexus, a
federated, free software, hackable VR social platform and
protocol.</a></p>
<!-- <p><a href="https://ortusjournal.org">Ortus Journal, a journal
of speculative analysis</a>
<a title="nonfree plugins" href="https://gschoppe.com/wordpress/plugins-and-themes-open-source/">[!]</a></p> -->
<h2 id="application"><a href="#application">Application</a></h2>
<p>In order to apply to be a member of the Tebibyte Media Network,
please reference the below guidelines. All applications should be sent
to <a href="mailto:apply@tebibyte.media">apply@tebibyte.media</a>. A
sample application is located <a
href="sample-applications/nexus.txt">here</a>.</p>
<p>Please write the application in plaintext as an essay without
organizational headers.</p>
<ol>
<li>Name of project or network and describe organizational makeup
<ul>
<li>List member projects of applicant networks</li>
<li>List team members of applicant projects and their roles</li>
<li>Designate of the Representative(s)</li>
</ul>
</li>
<li>A short written section describing the project or network
<ul>
<li>Include the type of project or network (i.e. software,
educational resource, publisher, art project)</li>
<li>Also include any programming languages, writing styles,
target platforms or technical information regarding the creation
of content</li>
<li>Link technical resources which contextualize its creation,
including:
<ul>
<li>Referenced materials used throughout the process of its
creation</li>
<li>Similar work or work upon which it is based</li>
<li>References to issues with a similar entity which it
addresses</li>
</ul>
</li>
<li>Describe the userbase and contributors attempting to be
appealed to</li>
<li>Describe long-term goals for the endeavor:
<ol>
<li>What will it look like in a year?</li>
<li>What does it gain from joining the Network?</li>
<li>What does it bring to the table for other Network
members?
<ul>
<li>If the proposed member is a writing collective, it
could provide valuable editorial experience and
knowledge</li>
<li>Art projects could work with editorial and
software entities to create combined works or to design
graphics, typefaces, or logotypes</li>
</ul>
</li>
</li>
<li>Prompt questions to answer as a conclusion could include
the following:
<ul>
<li>How does this endeavor contribute to the ecosystem it
integrates?</li>
<li>What specific problems is this new endeavor solving?</li>
<li>Do any existing projects solve these problems already?
If so, how is this endeavor different?</li>
<li>Is this a highly experimental endeavor that innovates
its field, a refined reimplementation of a tried-and-true
solution, or something in between?</li>
</ul>
</li>
<li>Feel free to include any extra information deemed important
to specify; the application cannot account for everything</li>
</ul>
</li>
<li>(If not already existing) a clear description of the vision of
the project or network's
<a href="https://en.wikipedia.org/wiki/Minimum_viable_product">minimum
viable product</a>
<ul>
<li>Remember to
<a href="http://www.catb.org/%7Eesr/writings/cathedral-bazaar/cathedral-bazaar/ar01s04.html">Release Early, Release Often</a></li>
<li>Minimum viable products are not complete or fully
functional; they must simply demonstrate promising work</li>
</ul>
</li>
<li>Estimated timespans for the project or network (i.e. one month,
a few months, a year, continuous) and a roadmap for the completed
project</li>
<li>Project licensing details
<ul>
<li>Tebibyte Media will not accept projects whose licensing
conflicts with our goal of furthering free software and
open-access projects. For guidance on this topic, see
<a href="https://www.gnu.org/licenses/license-recommendations.html">the
Free Software Foundation's recommendations</a>
as well as <a href="https://www.gnu.org/licenses/license-list.html">their
list of free software licenses</a></li>
</ul>
</li>
</ol>
</body>
</html>

View File

@ -0,0 +1,69 @@
Nexus is a federated, free software, hackable VR social platform and protocol.
Project members include Person 1 <user@example.com>, Person 2 <user@example.com>,
and Person 3 <user@example.com>. The representative of the project is Person 1.
Nexus' current design is subject to change; we are still in the rough
prototyping stage and we expect to "Ship-of-Theseus" our current design quite a
bit. The goal of Nexus is to provide an open, extendable, VR social platform. To
do this, Nexus separates its logic into individual Wasm scripts and a networking
API based on the ECS model. Everything communicates using the gLTF and VRM
standards: VRM for avatars, and gLTF for objects and worlds. Several different
actors are present within the Nexus architecture:
A “world” is a collection of Wasm scripts and gLTF models able to be reproduced.
It is intended for users to be able to create worlds, and to share them,
allowing others to use the worlds as templates from which to create servers. A
“server” is a running instance of a world; how servers interop with other
servers is yet to be determined. A “client” is the front-end application that
can connect to any Nexus server and interact with other clients over the server.
The current plan is to provide almost everything using Wasm scripts.
Wasm scripts have two categories so far; there are server scripts, that just run
on the server, and client scripts, which are sent over to the client for the
client to run locally and then interact with the server using the networking
API. It's possible that we will come up with some kind of server-client dual
script type, in which clients run a script to keep themselves up to date with
the server. The server checks to make sure its results line up with the clients
in order to limit abuse.
Camera and physics (gravity, collision, buttons, etc.) interactions, IK and FBT,
and GUI systems (server discovery interfaces, friends lists, etc.) will all be
provided by Wasm scripts. We will provide default implementations, but the
community will be free to hack on those scripts or create their own from scratch
to provide the same or new functionality. This creates an extremely extensible
platform. Using Wasm means that, as we go into the future, more languages could
be utilized to write social VR, or non-social VR experiences, such as games, a
scene editor, media creation tools, etc.
This system enables people to to write clients and servers in other languages or
engines than Bevy, which we are currently using for our standard implementation.
As long as clients or servers properly respect the Wasm scripts, everything
should work across different implementations. If someone creates a Nexus server
SDK in Unity, they will be able to take advantage of much of Unity to create
Nexus worlds.
The fact that we use Wasm also means that game developers can create games or
experiences in normal, 2D IDEs, such as writing a game in Rust, instead of
having to deal with our scene editor. That being said, we do plan to make a
scene editor in Nexus, but this is a tentative, far-future plan.
The current plan is to use IPFS to provide sharing of Wasm scripts, models, and
whatever else may materialize in the future.
Theoretical work on a permissions system has not yet begun.
The aim is to provide an free software VR social platform where people can
collaborate and communicate with each other, and a game engine-like base to
build social VR applications.
Our Minimum Viable Product is gLTF models loaded in for avatars, downloading and
loading, basic voice chat, and synced worlds.
The timespan of this project to full completion is several years. If all goes
according to plan, an MVP should be only a few months off.
The server and client implementation will be licensed under the GPLv3, but all
the base scripts, for things like physics, inverse kinematics, and the basic UI
implementation will be licensed under the Expat License.