diff --git a/Gemfile b/Gemfile
index a55c70e..252b5c1 100644
--- a/Gemfile
+++ b/Gemfile
@@ -10,7 +10,7 @@ source "https://rubygems.org"
# gem "jekyll", "~> 4.3.2"
gem "github-pages", "~> 228", group: :jekyll_plugins
# This is the default theme for new Jekyll sites. You may change this to anything you like.
-gem "minima", "~> 2.5"
+gem "minima", "~> 2.5.0"
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
# uncomment the line below. To upgrade, run `bundle update github-pages`.
# gem "github-pages", group: :jekyll_plugins
diff --git a/Gemfile.lock b/Gemfile.lock
index cc62c15..3b09539 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -259,7 +259,7 @@ DEPENDENCIES
github-pages (~> 228)
http_parser.rb (~> 0.6.0)
jekyll-feed (~> 0.12)
- minima (~> 2.5)
+ minima (~> 2.5.0)
tzinfo (>= 1, < 3)
tzinfo-data
wdm (~> 0.1.1)
diff --git a/_config.yml b/_config.yml
index a27170f..9a12882 100644
--- a/_config.yml
+++ b/_config.yml
@@ -34,8 +34,10 @@ plugins:
header_pages:
- - install.md
- - gettingstarted.md
+ - ki.md
+ - gi/index.md
+ - gi/install.md
+ - gi/gettingstarted.md
# Exclude from processing.
# The following items will not be processed, by default.
diff --git a/_includes/custom-head.html b/_includes/custom-head.html
new file mode 100644
index 0000000..058f650
--- /dev/null
+++ b/_includes/custom-head.html
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/assets/android-chrome-96x96.png b/assets/android-chrome-96x96.png
new file mode 100644
index 0000000..07c68d2
Binary files /dev/null and b/assets/android-chrome-96x96.png differ
diff --git a/assets/apple-touch-icon.png b/assets/apple-touch-icon.png
new file mode 100644
index 0000000..075bd49
Binary files /dev/null and b/assets/apple-touch-icon.png differ
diff --git a/assets/browserconfig.xml b/assets/browserconfig.xml
new file mode 100644
index 0000000..56836be
--- /dev/null
+++ b/assets/browserconfig.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+ #da532c
+
+
+
diff --git a/assets/favicon-16x16.png b/assets/favicon-16x16.png
new file mode 100644
index 0000000..45f0171
Binary files /dev/null and b/assets/favicon-16x16.png differ
diff --git a/assets/favicon-32x32.png b/assets/favicon-32x32.png
new file mode 100644
index 0000000..df49460
Binary files /dev/null and b/assets/favicon-32x32.png differ
diff --git a/assets/favicon.ico b/assets/favicon.ico
new file mode 100644
index 0000000..4cc977f
Binary files /dev/null and b/assets/favicon.ico differ
diff --git a/assets/mstile-150x150.png b/assets/mstile-150x150.png
new file mode 100644
index 0000000..d1250ce
Binary files /dev/null and b/assets/mstile-150x150.png differ
diff --git a/assets/safari-pinned-tab.svg b/assets/safari-pinned-tab.svg
new file mode 100644
index 0000000..2bfe48c
--- /dev/null
+++ b/assets/safari-pinned-tab.svg
@@ -0,0 +1,34 @@
+
+
+
diff --git a/assets/site.webmanifest b/assets/site.webmanifest
new file mode 100644
index 0000000..05b1b9e
--- /dev/null
+++ b/assets/site.webmanifest
@@ -0,0 +1,14 @@
+{
+ "name": "",
+ "short_name": "",
+ "icons": [
+ {
+ "src": "/assets/android-chrome-96x96.png",
+ "sizes": "96x96",
+ "type": "image/png"
+ }
+ ],
+ "theme_color": "#ffffff",
+ "background_color": "#ffffff",
+ "display": "standalone"
+}
diff --git a/gettingstarted.md b/gi/gettingstarted.md
similarity index 98%
rename from gettingstarted.md
rename to gi/gettingstarted.md
index 1ff5325..79fc8d6 100644
--- a/gettingstarted.md
+++ b/gi/gettingstarted.md
@@ -1,7 +1,7 @@
---
layout: page
title: Getting Started
-permalink: /gettingStarted/
+permalink: /gi/gettingstarted
---
_Note: this page assumes that you have already installed GoGi by completing the steps in [Install](/install)_
diff --git a/gi/index.md b/gi/index.md
new file mode 100644
index 0000000..449d976
--- /dev/null
+++ b/gi/index.md
@@ -0,0 +1,13 @@
+---
+layout: page
+title: Gi
+permalink: /gi
+---
+
+Gi is a 2D and 3D GUI framework, built on GoKi, providing a fully native Go experience, built upon widely-used and familiar standards in the web (CSS-based styling and layout, SVG-based vector graphics) and other GUIs (e.g., the Qt Widget and model-view framework).
+
+Gi has feature parity (or better) compared to the industry standard Qt framework in most respects, including support for things like tooltips, fully-formatted HTML text with hypertext links, syntax-highlighted text display and full-featured editing, custom keymaps, color preferences (including light and dark mode), etc. The model-view framework uses reflection to render complex structured GUI elements like edit dialogs, tables, lists, choosers, etc based on standard Go structured types (`struct`, slices, `map`), including a `TreeView` based on `Ki` trees, with a full-featured `FileTree` and `FileTreeView` for file system trees.
+
+The 3D framework supports a standard scenegraph-based framework that can import standard Collada `.obj` files, and custom dynamic 3D display elements. This 3D scenegraph can be embedded anywhere in the 2D scenegraph, and another 2D scenegraph can also be embedded within that 3D scenegraph, allowing nicely rendered, complex 2D GUI controls to be embedded within 3D scenes.
+
+The [goki/gi github repository](https://github.com/goki/gi) has the code for GoGi.
\ No newline at end of file
diff --git a/install.md b/gi/install.md
similarity index 98%
rename from install.md
rename to gi/install.md
index 4d1f77f..a0c6854 100644
--- a/install.md
+++ b/gi/install.md
@@ -1,7 +1,7 @@
---
layout: page
title: Install
-permalink: /install/
+permalink: /gi/install
---
1. Install the platform-specific dependencies for your platform:
diff --git a/index.md b/index.md
index bdceedd..908151e 100644
--- a/index.md
+++ b/index.md
@@ -1,45 +1,51 @@
---
layout: home
title: GoKi
+permalink: /
---
-[GoKi](https://github.com/goki/ki) is a tree package based on the `Ki` interface implemented by the `Node` struct, supporting arbitrary directed (no loops!) structural trees and standard operations thereon, for primary use in constructing the scenegraph in the GoGi GUI framework. It can also be used for representing file system trees, web DOM trees, or any other such structural tree, which are so commonly used to represent structured information.
+GoKi is an open-source project that provides a set of frameworks for constructing cross-platform GUIs and other useful tools in pure Go using full-strength tree structures. The name GoKi is derived from the word tree in Japanese (木), which is pronounced Ki (き).
-## GoGi
+## Ki
+The core package of GoKi is [Ki](/ki), which provides trees using the `Ki` interface implemented by the `Node` struct. This supports arbitrarily directed structural trees and standard operations on them.
-[GoGi](https://github.com/goki/gi) is a 2D and 3D GUI framework, built on GoKi, providing a fully native Go experience, built upon widely-used and familiar standards in the web (CSS-based styling and layout, SVG-based vector graphics) and other GUIs (e.g., the Qt Widget and model-view framework).
+## Gi
+[Gi](/gi) is a pure Go 2D and 3D GUI framework, built on [Ki](/ki) and widely used standards in the web, like CSS for styling and SVG for vector graphics.
-GoGi has feature parity (or better) compared to the industry standard Qt framework in most respects, including support for things like tooltips, fully-formatted HTML text with hypertext links, syntax-highlighted text display and full-featured editing, custom keymaps, color preferences (including light and dark mode), etc. The model-view framework uses reflection to render complex structured GUI elements like edit dialogs, tables, lists, choosers, etc based on standard Go structured types (`struct`, slices, `map`), including a `TreeView` based on `Ki` trees, with a full-featured `FileTree` and `FileTreeView` for file system trees.
+## Gide
+[Gide](/gide) is an IDE and IDE framework built using [Gi](/gi) and [Pi](/pi). It has standard editor features like syntax highlighting, completion, and version control built-in.
-The 3D framework supports a standard scenegraph-based framework that can import standard Collada `.obj` files, and custom dynamic 3D display elements. This 3D scenegraph can be embedded anywhere in the 2D scenegraph, and another 2D scenegraph can also be embedded within that 3D scenegraph, allowing nicely rendered, complex 2D GUI controls to be embedded within 3D scenes.
+## Pi
+[Pi](/pi) is an interactive parsing library that uses a simple and robust form of lexing and parsing based on top-down recursive descent.
-The https://github.com/goki github site has the repositories, full README and wiki docs, etc.
+## vGPU
-See the [GoGi Wiki](https://github.com/goki/gi/wiki) for more detailed documentation on the GoGi GUI.
+[vGPU](/vgpu) is a Vulkan-based framework for both Graphics and Compute Engine use of GPU hardware in Go.
-There are extensive `examples` demo applications showing and testing the GUI elements included in the GoGi repository, and the following major applications:
+## GoSL
-* The [emergent](https://EmerSim.org) neural network simulation system ([on github](https://github.com/emer/emergent)) uses 2D and 3D GoGi GUI elements to provide interactive control and visualization of complex neural models of the brain. These models can be run directly in Go, or via Python, and GoGi itself can be fully accessed directly through Python using the [GoPy](https://github.com/go-python/gopy) tool.
+[GoSL](/gosl) implements Go as a shader language for GPU compute shaders by converting Go code to HLSL, and then using the glslc compiler to compile into an `.spv` SPIR-V file that can be loaded into a vulkan compute shader.
-* [Gide](https://github.com/goki/gide) is a Go-based IDE (interactive development environment), which serves as the daily testing platform for GoGi, and features a strongly *emacs*-inspired design and functionality. It is not fancy, but everything can be accessed by keyboard shortcuts so it is very efficient once learned (and emacs users should be fluent right away). It has full knowledge of the Go language (via the [GoPi interactive parser](https://github.com/goki/pi)) and supports completion, lookup, interactive debugging via the [delve](https://github.com/go-delve/delve) debugger, etc.
+## Grid
+Grid is a Go SVG vector drawing program, built using Gi and based on Inkscape.
-* [GoPix](https://github.com/gopix) is a picture viewing and organizing app, under development but currently usable for basic tasks. Its primary advantage is in providing full keyboard-based usability, and a generic file-based framework, that avoids any kind of lock-in into complex databases. For example, it creates symbolic links to create folders of selected images from the full collection of files, and it takes full advantage of the `exif` metadata to update and organize picture files. Image files can be systematically renamed by their date taken to avoid having a 100's of files all named `Image-1.jpg`.
+## GoPix
-* [Grid](https://github.com/goki/grid) is an interactive drawing program based on SVG vector-based format, like Inkscape. Inkscape has never worked very well on Mac, and is currently almost unusable due to extremely slow GUI rendering. Initial basic functionality is in place, with more complete features to be implemented gradually.
+[GoPix](/gopix) is a Go picture management app.
-* [Glide](https://github.com/gok/glide) will be a lightweight internet display engine (HTML renderer and web browser), using the GoGi scenegraph as the DOM. Because GoGi uses CSS natively and already supports HTML-based text formatting, basic functionality should be relatively easy. Only an idea and a name at this point.
+## Mat32
-* [Grail](https://github.com/goki/grail) will be an email app, using Glide for HTML rendering of messages, featuring full keyboard-based navigation (emacs-style of course) and markup-based message formatting. Only an idea and a name at this point.
+[Mat32](/mat32) is a float32 based vector and matrix package for 2D and 3D graphics that uses a value-based design.
-These examples provide a decent codebase to see how to accomplish various things you might want to do.
+**Coming Soon**
-As of now, GoGi supports full functionality across the three major desktop platforms: Mac, Linux and Windows, but it should be portable to mobile platforms and wasm with a bit of work by an interested party. The vast majority of the system works directly on the standard Go `image.Image` interface, and it doesn't use any platform-specific widgets, so it is generally highly portable.
+___
-# Screenshots
+## Glide
-![Screenshot of Widgets demo](/images/screenshot.png?raw=true "Screenshot of Widgets demo")
+[Glide](/glide) will be a lightweight internet display engine (HTML renderer and web browser), built using Gi.
-![Screenshot of Gi3D demo](/images/screenshot_gi3d.png?raw=true "Screenshot of Gi3D demo")
+## Grail
-![Screenshot of GiEditor, Dark mode](/images/screenshot_dark.png?raw=true "Screenshot of GiEditor, Dark Mode")
+[Grail](/grail) will be an email app, using Glide for HTML rendering of messages, featuring full keyboard-based navigation and markup-based message formatting.
diff --git a/ki.md b/ki.md
new file mode 100644
index 0000000..0b68ddc
--- /dev/null
+++ b/ki.md
@@ -0,0 +1,7 @@
+---
+layout: page
+title: Ki
+permalink: /ki
+---
+
+Ki is a tree package based on the `Ki` interface implemented by the `Node` struct, supporting arbitrarily directed structural trees and standard operations on them, for primary use in constructing the scenegraph in the [Gi](/gi) GUI framework. It can also be used for representing file system trees, web DOM trees, or any other such structural tree, which are so commonly used to represent structured information.
\ No newline at end of file