Replace Docusaurus site with static HTML
This commit is contained in:
17
.gitignore
vendored
17
.gitignore
vendored
@@ -1,20 +1,3 @@
|
||||
# Dependencies
|
||||
/node_modules
|
||||
|
||||
# Production
|
||||
/build
|
||||
|
||||
# Generated files
|
||||
.docusaurus
|
||||
.cache-loader
|
||||
|
||||
# Misc
|
||||
.DS_Store
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
|
||||
44
README.md
44
README.md
@@ -1,33 +1,21 @@
|
||||
# Website
|
||||
# Stardust XR Website
|
||||
|
||||
This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.
|
||||
This repository contains a minimal static website for the Stardust XR project.
|
||||
|
||||
## Installation
|
||||
## Usage
|
||||
|
||||
```console
|
||||
yarn install
|
||||
No build tools are required. Open `index.html` in your browser or serve the
|
||||
folder with any static web server.
|
||||
|
||||
## Documentation
|
||||
|
||||
Markdown files live in the `docs/` directory. The docs page loads them on demand
|
||||
using the [Marked](https://marked.js.org/) library. To link to a document, use a
|
||||
URL of the form:
|
||||
|
||||
```
|
||||
/docs/#path/to/file
|
||||
```
|
||||
|
||||
## Local Development
|
||||
|
||||
```console
|
||||
yarn start
|
||||
```
|
||||
|
||||
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
|
||||
|
||||
## Build
|
||||
|
||||
```console
|
||||
yarn build
|
||||
```
|
||||
|
||||
This command generates static content into the `build` directory and can be served using any static contents hosting service.
|
||||
|
||||
## Deployment
|
||||
|
||||
```console
|
||||
GIT_USER=<Your GitHub username> USE_SSH=true yarn deploy
|
||||
```
|
||||
|
||||
If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.
|
||||
Adding a new document is as easy as dropping a `.md` file into the `docs`
|
||||
folder.
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
module.exports = {
|
||||
presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
|
||||
};
|
||||
@@ -1,61 +0,0 @@
|
||||
---
|
||||
title: Stardust XR Philosophy
|
||||
author: Cyberneticmelon
|
||||
---
|
||||
-----
|
||||
# Complexity ≠ Difficulty
|
||||
|
||||
In most modern user interaction there is a massive disconnect between the interface and the underlying system that is running.
|
||||
Although some user interfaces may look well designed, often times they have papered over how things work instead of unfolding the complexity
|
||||
in a way that is more understandable.
|
||||
The average person may not easily understand why their computer is doing what it is doing, and delegate this knowledge to the realm of programmers
|
||||
or more technically inclined people.
|
||||
|
||||
High complexity, however, does not innately indicate that something is highly difficult. Take all the objects lying in front of you when
|
||||
you're working at a desk. To move all of those items around is a highly complex task that even modern visual tracking algorithms can
|
||||
sometimes struggle with, let alone the mechatronic limitations when it comes to robotics, outside of tightly controlled environments.
|
||||
|
||||
You, however, can easily and intuitively move things around and organize them in a spatial environment without needing to directly
|
||||
think about it, which provides a unique and newly available avenue of exploration in the XR and VR space, and it is this innate ability
|
||||
that we aim to harness with Stardust XR's design philosophy, by focusing in on direct interactions that map to underlying functionality.
|
||||
|
||||
# Direct Interaction Vs Indirect Action
|
||||
|
||||
With something like indirect action such as a touch screen on a phone or tablet, you're limited to essentially a few modes of interaction such as tapping or swiping, whereas direct interaction within XR and VR you're opened up to a wide possibility of methods like cutting something in half with scissor fingers, duplicating by stretching an object, plugging one thing into another, etc. Stardust XR's design philosophy allows for the possibility of taking the underlying mechanics and expressing them as full interfaces. With the correct signifiers and affordances that map directly to the things underneath, people can gain an intuitive understanding of how their computer works. Clients and applications can also be designed in a way that allows for a better understanding of what is going on as there is far less obfuscation as to how underlying structures are handling that data.
|
||||
|
||||

|
||||
*git-bonsai, a prototype design for an intuitive spatial github client*
|
||||
|
||||
A virtual environment provides an infinite space in which unfolding complexity becomes much more viable to do.
|
||||
|
||||
Part of the goal of Stardust XR is to allow the average user to become a power-user through intuitive interaction; because of the number of ways a user can engage with a 3D environment, this greatly increases the interactive bandwidth a developer
|
||||
can utilize.
|
||||
|
||||
# Form Flexibility Principle
|
||||
|
||||
With a PC, you are essentially limited to a keyboard and mouse; with a touch screen, you're limited to touch and multi-touch; in XR,
|
||||
you have hands, eyes, and body, which has an exceedingly large amount of available bandwidth for interaction.
|
||||
|
||||
The more interaction bandwidth you have to offer, the more customizability is not just something that *can* be done, it's something that
|
||||
*must* be done to provide an adaptable user experience for real world scenarios. As XR expands into areas beyond just the home and workspace,
|
||||
this becomes increasingly important as the ways in which you can interact with the world is, by default, extremely variable, and Stardust XR's open platform and client creation philosophy allows developers to freely expand these types of interactions to meet the demands that computation brought into a 3D space will bring. From sitting at a small workbench all the way up to a full warehouse, the application space becomes much larger as you incorporate the ability to move through the world with mixed reality. Existing user interfaces of today typically provide limited and hard-coded exceptions to the rules, and only for specific situations or disabilities. By making user interaction systems more emergent, many forms of accessibility become available third party, with broader compatibility.
|
||||
|
||||
When you take advantage of the innate interactions and movements that come naturally to people in a 3D environment, and combine that with a library of base interactions associated with underlying computer structures, a system that is both modular and emergent in its ability to grow as XR expands more and more into the real world becomes essential.
|
||||
|
||||
Stardust XR is that system 🍉
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<iframe
|
||||
width="560"
|
||||
height="315"
|
||||
src="https://www.youtube.com/embed/v2WblwbaLaA"
|
||||
frameBorder={0}
|
||||
allow="autoplay; encrypted-media"
|
||||
allowFullScreen
|
||||
style={{maxWidth: '100%', aspectRatio: '16/9'}}
|
||||
></iframe>
|
||||
</div>
|
||||
|
||||
If you'd like to try out Stardust XR, [click here](https://stardustxr.org/docs/get-started/What-is-Stardust)
|
||||
|
||||
[Become a sponsor](https://github.com/sponsors/technobaboo) and help Nova expand Stardust XR! Stardust XR is also actively looking for help with development, check out the [github](https://github.com/StardustXR) page for more information.
|
||||
15
docs/docs.js
Normal file
15
docs/docs.js
Normal file
@@ -0,0 +1,15 @@
|
||||
async function loadDoc() {
|
||||
const hash = decodeURIComponent(location.hash.slice(1)) || '01-get-started/01-What-is-Stardust';
|
||||
const file = hash + '.md';
|
||||
const res = await fetch(file);
|
||||
const container = document.getElementById('content');
|
||||
if (!res.ok) {
|
||||
container.textContent = 'Document not found.';
|
||||
return;
|
||||
}
|
||||
let text = await res.text();
|
||||
text = text.replace(/^---[\s\S]*?---\n/, '');
|
||||
container.innerHTML = marked.parse(text);
|
||||
}
|
||||
window.addEventListener('hashchange', loadDoc);
|
||||
window.addEventListener('load', loadDoc);
|
||||
23
docs/index.html
Normal file
23
docs/index.html
Normal file
@@ -0,0 +1,23 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Stardust XR Docs</title>
|
||||
<link rel="stylesheet" href="../style.css" />
|
||||
<link rel="icon" type="image/png" href="../static/img/icon.png" />
|
||||
<script src="../js/marked.min.js"></script>
|
||||
<script src="docs.js" defer></script>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h1><a href="../index.html" style="color:inherit;text-decoration:none;">Stardust XR Docs</a></h1>
|
||||
<nav>
|
||||
<a href="../index.html">Home</a>
|
||||
</nav>
|
||||
</header>
|
||||
<main>
|
||||
<div id="content">Loading...</div>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,138 +0,0 @@
|
||||
const lightCodeTheme = require("prism-react-renderer/themes/vsLight");
|
||||
const darkCodeTheme = require("prism-react-renderer/themes/vsDark");
|
||||
|
||||
/** @type {import('@docusaurus/types').DocusaurusConfig} */
|
||||
module.exports = {
|
||||
title: "Stardust XR",
|
||||
tagline: "Stardust... We Fight For the Users!",
|
||||
url: "https://stardustxr.org",
|
||||
baseUrl: "/",
|
||||
trailingSlash: false,
|
||||
onBrokenLinks: "throw",
|
||||
onBrokenMarkdownLinks: "warn",
|
||||
favicon: "img/favicon.ico",
|
||||
organizationName: "StardustXR", // Usually your GitHub org/user name.
|
||||
projectName: "website", // Usually your repo name.
|
||||
scripts: [{src: 'https://plausible.fyralabs.com/js/script.hash.outbound-links.js', defer: true, 'data-domain': 'stardustxr.org'}],
|
||||
markdown: {
|
||||
mermaid: true,
|
||||
},
|
||||
themes: ["@docusaurus/theme-mermaid"],
|
||||
themeConfig: {
|
||||
colorMode: {
|
||||
defaultMode: "dark",
|
||||
disableSwitch: true,
|
||||
respectPrefersColorScheme: false,
|
||||
},
|
||||
navbar: {
|
||||
title: "Stardust XR",
|
||||
logo: {
|
||||
alt: "Stardust XR logo, a yellow astroid with smaller white astroids around it",
|
||||
src: "img/icon.webp",
|
||||
},
|
||||
items: [
|
||||
{
|
||||
href: "https://twitter.com/stardustxr",
|
||||
label: "Twitter",
|
||||
position: "right",
|
||||
},
|
||||
{
|
||||
href: "https://discord.gg/A9w7fKE",
|
||||
label: "Discord",
|
||||
position: "right",
|
||||
},
|
||||
{
|
||||
href: "https://matrix.to/#/#stardustxr:matrix.org",
|
||||
label: "Matrix",
|
||||
position: "right",
|
||||
},
|
||||
{
|
||||
href: "https://github.com/StardustXR",
|
||||
label: "GitHub",
|
||||
position: "right",
|
||||
},
|
||||
{
|
||||
href: "https://github.com/sponsors/technobaboo",
|
||||
label: "Sponsor This",
|
||||
position: "right",
|
||||
},
|
||||
],
|
||||
},
|
||||
footer: {
|
||||
style: "dark",
|
||||
links: [
|
||||
{
|
||||
title: "Docs",
|
||||
items: [
|
||||
{
|
||||
label: "Getting Started",
|
||||
to: "/docs/get-started/setup-openxr",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Community",
|
||||
items: [
|
||||
{
|
||||
label: "Discord",
|
||||
href: "https://discord.gg/A9w7fKE",
|
||||
},
|
||||
{
|
||||
label: "Matrix",
|
||||
href: "https://matrix.to/#/#stardustxr:matrix.org",
|
||||
},
|
||||
{
|
||||
label: "Twitter",
|
||||
href: "https://twitter.com/stardustxr",
|
||||
},
|
||||
{
|
||||
label: "Stardust XR (GitHub)",
|
||||
href: "https://github.com/StardustXR",
|
||||
},
|
||||
{
|
||||
label: "Sponsor This",
|
||||
href: "https://github.com/sponsors/technobaboo",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Code",
|
||||
items: [
|
||||
{
|
||||
label: "Stardust XR (Server)",
|
||||
href: "https://github.com/StardustXR/stardust-xr-server",
|
||||
},
|
||||
{
|
||||
label: "stardust-xr (includes Fusion)",
|
||||
href: "https://github.com/StardustXR/stardust-xr",
|
||||
},
|
||||
{
|
||||
label: "Flatland",
|
||||
href: "https://github.com/StardustXR/flatland",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
copyright: `Copyright © ${new Date().getFullYear()} Nova King`,
|
||||
},
|
||||
prism: {
|
||||
theme: lightCodeTheme,
|
||||
darkTheme: darkCodeTheme,
|
||||
},
|
||||
},
|
||||
presets: [
|
||||
[
|
||||
"@docusaurus/preset-classic",
|
||||
{
|
||||
docs: {
|
||||
sidebarPath: require.resolve("./sidebars.js"),
|
||||
// Please change this to your repo.
|
||||
editUrl: "https://github.com/StardustXR/website/edit/main/",
|
||||
},
|
||||
theme: {
|
||||
customCss: require.resolve("./src/css/custom.css"),
|
||||
},
|
||||
},
|
||||
],
|
||||
],
|
||||
};
|
||||
61
flake.lock
generated
61
flake.lock
generated
@@ -1,61 +0,0 @@
|
||||
{
|
||||
"nodes": {
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1723991338,
|
||||
"narHash": "sha256-Grh5PF0+gootJfOJFenTTxDTYPidA3V28dqJ/WV7iis=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "8a3354191c0d7144db9756a74755672387b702ba",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
23
flake.nix
23
flake.nix
@@ -1,23 +0,0 @@
|
||||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
|
||||
outputs =
|
||||
{ nixpkgs, flake-utils, ... }:
|
||||
flake-utils.lib.eachDefaultSystem (
|
||||
system:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
in
|
||||
{
|
||||
devShells.default = pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
nodejs_22
|
||||
yarn
|
||||
];
|
||||
};
|
||||
}
|
||||
);
|
||||
}
|
||||
30
index.html
Normal file
30
index.html
Normal file
@@ -0,0 +1,30 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Stardust XR</title>
|
||||
<link rel="stylesheet" href="style.css" />
|
||||
<link rel="icon" type="image/png" href="static/img/icon.png" />
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h1>Stardust XR</h1>
|
||||
<p>Stardust... We Fight For the Users!</p>
|
||||
<nav>
|
||||
<a href="index.html">Home</a>
|
||||
<a href="docs/">Docs</a>
|
||||
<a href="https://github.com/StardustXR" target="_blank" rel="noopener">GitHub</a>
|
||||
</nav>
|
||||
</header>
|
||||
<main>
|
||||
<section>
|
||||
<h2>Get Started</h2>
|
||||
<p>Check out the <a href="docs/#01-get-started/01-What-is-Stardust">What is Stardust?</a> guide to learn more.</p>
|
||||
</section>
|
||||
</main>
|
||||
<footer>
|
||||
<p>© 2024 Stardust XR</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
69
js/marked.min.js
vendored
Normal file
69
js/marked.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
44
package.json
44
package.json
@@ -1,44 +0,0 @@
|
||||
{
|
||||
"name": "stardust-website",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"docusaurus": "docusaurus",
|
||||
"start": "docusaurus start",
|
||||
"build": "docusaurus build",
|
||||
"swizzle": "docusaurus swizzle",
|
||||
"deploy": "docusaurus deploy",
|
||||
"clear": "docusaurus clear",
|
||||
"serve": "docusaurus serve",
|
||||
"write-translations": "docusaurus write-translations",
|
||||
"write-heading-ids": "docusaurus write-heading-ids"
|
||||
},
|
||||
"dependencies": {
|
||||
"@docusaurus/core": "2.4.1",
|
||||
"@docusaurus/preset-classic": "2.4.1",
|
||||
"@docusaurus/theme-mermaid": "2.4.1",
|
||||
"@mdx-js/react": "^1.6.21",
|
||||
"@svgr/webpack": "^5.5.0",
|
||||
"clsx": "^1.1.1",
|
||||
"file-loader": "^6.2.0",
|
||||
"prism-react-renderer": "^1.2.1",
|
||||
"react": "^17.0.1",
|
||||
"react-dom": "^17.0.1",
|
||||
"react-responsive-carousel": "^3.2.20",
|
||||
"url-loader": "^4.1.1",
|
||||
"utils-merge": "^1.0.1",
|
||||
"yarn": "^1.22.10"
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.5%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
}
|
||||
}
|
||||
27
sidebars.js
27
sidebars.js
@@ -1,27 +0,0 @@
|
||||
/**
|
||||
Creating a sidebar enables you to:
|
||||
- create an ordered group of docs
|
||||
- render a sidebar for each doc of that group
|
||||
- provide next/previous navigation
|
||||
|
||||
|
||||
The sidebars can be generated from the filesystem, or explicitly defined here.
|
||||
|
||||
Create as many sidebars as you want.
|
||||
*/
|
||||
|
||||
module.exports = {
|
||||
// By default, Docusaurus generates a sidebar from the docs folder structure
|
||||
tutorialSidebar: [{type: 'autogenerated', dirName: '.'}],
|
||||
|
||||
// But you can create a sidebar manually
|
||||
/*
|
||||
tutorialSidebar: [
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Tutorial',
|
||||
items: ['hello'],
|
||||
},
|
||||
],
|
||||
*/
|
||||
};
|
||||
@@ -1,38 +0,0 @@
|
||||
import React from "react";
|
||||
import { Carousel } from "react-responsive-carousel";
|
||||
|
||||
const ImageList = [
|
||||
{
|
||||
image: "img/carousel/workflow.png",
|
||||
alt: "A scene showing a flat panel with Blender to the left (containing a sketch of a 3D git client that looks like a bonsai tree), a turntable with a 3D model of the stardust logo on it in the center, and a massive grid of hexagons for all the apps on the system to the right.",
|
||||
caption:
|
||||
"A workflow containing Blender, a turntable with a 3D model preview, and the hexasgon app launcher.",
|
||||
},
|
||||
{
|
||||
image: "img/carousel/multipleclients.png",
|
||||
alt: "A scene showing multiple widgets, including CRT TV panel shells and flat touchscreen panels and 2 rings forming a cylinder around the scene.",
|
||||
caption: "Multiple objects working independently all at once.",
|
||||
},
|
||||
{
|
||||
image: "img/carousel/panels.png",
|
||||
alt: "A series of application windows as 3D panels similar to small wooden boards in proportions with a Panasonic CRT TV model in the center showing Agregore (the browser).",
|
||||
caption: "Panels for wayland apps and a CRT panel shell for XR UI.",
|
||||
},
|
||||
];
|
||||
|
||||
function CarouselImage({ image, alt, caption }) {
|
||||
return (
|
||||
<div>
|
||||
<img alt={alt} src={image} />
|
||||
<p className="legend">{caption}</p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default () => (
|
||||
<Carousel autoPlay infiniteLoop showThumbs={false} className="gallery">
|
||||
{ImageList.map((props, idx) => (
|
||||
<CarouselImage key={idx} {...props} />
|
||||
))}
|
||||
</Carousel>
|
||||
);
|
||||
@@ -1,53 +0,0 @@
|
||||
import React from 'react';
|
||||
import clsx from 'clsx';
|
||||
import styles from './HomepageFeatures.module.css';
|
||||
|
||||
const FeatureList = [
|
||||
{
|
||||
title: 'Flexible',
|
||||
image: '/img/icon.gif',
|
||||
description: (
|
||||
<>
|
||||
Stardust allows developers to make XR widgets or interfaces and run them among others.
|
||||
You don't have to make a whole system UI, just a few pieces.
|
||||
</>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: 'Streamlined',
|
||||
image: 'https://stereokit.net/img/StereoKitLogoLight.svg',
|
||||
description: (
|
||||
<>
|
||||
Stardust is made using <a href="https://stereokit.net">StereoKit</a>, an XR application/rendering toolkit allowing for a fast and lightweight display server.
|
||||
</>
|
||||
),
|
||||
},
|
||||
];
|
||||
|
||||
function Feature({image, title, description}) {
|
||||
return (
|
||||
<div className={clsx('col col--6')}>
|
||||
<div className="text--center">
|
||||
<img src={image} className={styles.featureImg} alt={title} />
|
||||
</div>
|
||||
<div className="text--center padding-horiz--md">
|
||||
<h3>{title}</h3>
|
||||
<p>{description}</p>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default function HomepageFeatures() {
|
||||
return (
|
||||
<section className={styles.features}>
|
||||
<div className="container">
|
||||
<div className="row">
|
||||
{FeatureList.map((props, idx) => (
|
||||
<Feature key={idx} {...props} />
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
/* stylelint-disable docusaurus/copyright-header */
|
||||
|
||||
.features {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 2rem 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.featureImg {
|
||||
height: 200px;
|
||||
width: 200px;
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
/* stylelint-disable docusaurus/copyright-header */
|
||||
/**
|
||||
* Any CSS included here will be global. The classic template
|
||||
* bundles Infima by default. Infima is a CSS framework designed to
|
||||
* work well for content-centric websites.
|
||||
*/
|
||||
|
||||
/* You can override the default Infima variables here. */
|
||||
:root {
|
||||
--ifm-color-primary: #e1e456;
|
||||
--ifm-color-primary-dark: rgb(175, 173, 33);
|
||||
--ifm-color-primary-darker: rgb(165, 163, 31);
|
||||
--ifm-color-primary-darkest: rgb(134, 136, 26);
|
||||
--ifm-color-primary-light: rgb(201, 203, 70);
|
||||
--ifm-color-primary-lighter: rgb(212, 210, 102);
|
||||
--ifm-color-primary-lightest: rgb(223, 224, 146);
|
||||
|
||||
--ifm-color-secondary: #a14ed8;
|
||||
--ifm-color-secondary-dark: #7c3ca7;
|
||||
--ifm-color-secondary-darker: #612f83;
|
||||
--ifm-code-font-size: 95%;
|
||||
}
|
||||
|
||||
.docusaurus-highlight-code-line {
|
||||
background-color: rgba(0, 0, 0, 0.1);
|
||||
display: block;
|
||||
margin: 0 calc(-1 * var(--ifm-pre-padding));
|
||||
padding: 0 var(--ifm-pre-padding);
|
||||
}
|
||||
|
||||
html[data-theme='dark'] .docusaurus-highlight-code-line {
|
||||
background-color: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
ul.contains-task-list {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
li.task-list-item > input[type="checkbox"] {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.gallery {
|
||||
margin: 0 auto;
|
||||
max-width: 1250px;
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
import React from "react";
|
||||
import clsx from "clsx";
|
||||
import Layout from "@theme/Layout";
|
||||
import Link from "@docusaurus/Link";
|
||||
import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
|
||||
import styles from "./index.module.css";
|
||||
import HomepageFeatures from "../components/HomepageFeatures";
|
||||
import Carousel from "../components/Carousel";
|
||||
import "react-responsive-carousel/lib/styles/carousel.min.css";
|
||||
|
||||
function HomepageHeader() {
|
||||
const { siteConfig } = useDocusaurusContext();
|
||||
return (
|
||||
<header className={clsx("hero hero--primary", styles.heroBanner)}>
|
||||
<div className="container">
|
||||
<link rel="me" href="https://fosstodon.org/@stardustxr"></link>
|
||||
<h1 className="hero__title">{siteConfig.title}</h1>
|
||||
<p className="hero__subtitle">{siteConfig.tagline}</p>
|
||||
<div className={styles.buttons}>
|
||||
<Link
|
||||
className="button button--secondary button--lg"
|
||||
to="/docs/get-started/What-is-Stardust"
|
||||
>
|
||||
Get Started
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
);
|
||||
}
|
||||
|
||||
export default function Home() {
|
||||
const { siteConfig } = useDocusaurusContext();
|
||||
return (
|
||||
<Layout image="img/icon.gif" description="XR Display Server">
|
||||
<HomepageHeader />
|
||||
<main>
|
||||
<HomepageFeatures />
|
||||
<Carousel />
|
||||
</main>
|
||||
</Layout>
|
||||
);
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
/* stylelint-disable docusaurus/copyright-header */
|
||||
|
||||
/**
|
||||
* CSS files with the .module.css suffix will be treated as CSS modules
|
||||
* and scoped locally.
|
||||
*/
|
||||
|
||||
.heroBanner {
|
||||
padding: 4rem 0;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 966px) {
|
||||
.heroBanner {
|
||||
padding: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
.buttons {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
@@ -1,75 +0,0 @@
|
||||
---
|
||||
title: Roadmap
|
||||
---
|
||||
|
||||
# Roadmap
|
||||
|
||||
**Warning. This roadmap is now outdated.**
|
||||
|
||||
## 1.0 (Minimum Viable Product)
|
||||
|
||||
- [x] Core functionality
|
||||
- [x] IPC+RPC
|
||||
- [x] Client
|
||||
- [x] Fusion
|
||||
- [x] Initial connection
|
||||
- [x] Node type creation/destruction
|
||||
- [x] Interface interaction
|
||||
- [x] Callbacks
|
||||
- [x] Documentation
|
||||
- [x] Server
|
||||
- [x] Per-client scenegraph
|
||||
- [x] Statically link StereoKit
|
||||
- [x] Basic features
|
||||
- [x] Logic step
|
||||
- [x] Spatial transforms
|
||||
- [x] Absolute movement
|
||||
- [x] Relative movement
|
||||
- [x] Spatial parenting
|
||||
- [x] Models
|
||||
- [x] Loading
|
||||
- [x] Setting material parameters
|
||||
- [x] Fields (SDFs for interaction)
|
||||
- [x] Box field
|
||||
- [x] Rounded box field
|
||||
- [x] Sphere field
|
||||
- [x] Input
|
||||
- [x] Input methods
|
||||
- [x] Hand input
|
||||
- [x] Creation from OpenXR
|
||||
- [x] Creation from StereoKit (flatscreen)
|
||||
- [x] Interaction with clients
|
||||
- [x] Pointer input
|
||||
- [x] Creation from StereoKit (flatscreen, mouse cursor ray)
|
||||
- [x] Interaction with clients
|
||||
- [x] Input handler
|
||||
- [x] Async input propagation through distance
|
||||
- [x] Environment
|
||||
- [x] Set skytex
|
||||
- [x] Set skylight
|
||||
- [x] Items
|
||||
- [x] Base item class
|
||||
- [x] Base item accepter class
|
||||
- [x] Environment equirectangular item
|
||||
- [x] Environment equirectangular accepter
|
||||
- [x] 2D integration
|
||||
- [x] Panels
|
||||
- [x] Panel item
|
||||
- [x] smithay (for Wayland)
|
||||
- [x] Rendering
|
||||
- [x] Input seats
|
||||
- [x] Panel shells
|
||||
- [x] Accept panel items
|
||||
- [x] Put surface on model material's texture
|
||||
- [x] Feed input through to panel
|
||||
- [x] Release panel items
|
||||
- [ ] Daily Drivable System
|
||||
- [ ] GUI App Launcher (Protostar)
|
||||
- [x] Get desktop files
|
||||
- [x] Find and parse icons
|
||||
- [ ] Display icons and desktop files in grid
|
||||
- [x] Launch executables spatially
|
||||
- [ ] Panel Item UI
|
||||
- [ ] Flatland
|
||||
|
||||
More to come!
|
||||
36
style.css
Normal file
36
style.css
Normal file
@@ -0,0 +1,36 @@
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
line-height: 1.6;
|
||||
background: #fdfdfd;
|
||||
color: #333;
|
||||
}
|
||||
header {
|
||||
background: #222;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
padding: 1rem 0.5rem;
|
||||
}
|
||||
header nav a {
|
||||
color: #ffd400;
|
||||
margin: 0 0.5rem;
|
||||
text-decoration: none;
|
||||
}
|
||||
header nav a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
main {
|
||||
max-width: 800px;
|
||||
margin: auto;
|
||||
padding: 1rem;
|
||||
}
|
||||
footer {
|
||||
text-align: center;
|
||||
padding: 1rem;
|
||||
color: #666;
|
||||
}
|
||||
pre {
|
||||
background: #f4f4f4;
|
||||
padding: 0.5rem;
|
||||
overflow-x: auto;
|
||||
}
|
||||
Reference in New Issue
Block a user