Jason Johnston

Web UI, Data Visualization, WebGL, WebXR

ProtectWise Visualizer

Other Work

I've released troika-three-text 0.41, with support for right-to-left/bidirectional text and Arabic/Hebrew scripts! Big thanks to @boulabiar and @michaelhazani for testing.

If you find bugs w/ these or other scripts, please open issues! https://t.co/qOeI8vQEQW#threejs #troikajs pic.twitter.com/R715ddCIQK

— Jason Johnston (@lojjic) April 19, 2021

The result was sort of a combination 3D bar graph plus heatmap, and gave us a coordinate system that was somewhat meaningful - IPs "close" to each other in the network are naturally grouped.

We also did some variants with popup-style magnification instead of camera zooming. pic.twitter.com/Ohvjhv65hD

— Jason Johnston (@lojjic) March 12, 2021

This timeline interaction is feeling pretty sehhhk-say tbh. #ThreeJS #TroikaJS #WebXR #TaffyPulling #DontLickYourScreen pic.twitter.com/wfM09vs1E3

— Jason Johnston (@lojjic) March 4, 2021

Ummm it makes absolutely no sense up against AFrame and Babylon.js but my framework Troika won WebXR Framework of the Year in the #WebXRAwards. Flattering though! And it's motivation to continue pulling useful things out of the Troika framework to benefit all #threejs devs. https://t.co/vXufOBwwJk

— Jason Johnston (@lojjic) February 20, 2021

Added a cylindrical curveRadius option to troika-three-text. I find this surprisingly useful, especially for large text blocks in XR. #threejs pic.twitter.com/A1B7ewMCfE

— Jason Johnston (@lojjic) February 15, 2021

This was a fun little study plotting events on a timeline, where the y-z axes show geographical position. This is one of those cases that falls flat on a screen but works great in XR; with a stereoscopic view the positions become clear. #webxr #threejs pic.twitter.com/UzpX2XHqqZ

— Jason Johnston (@lojjic) February 10, 2021

Oh man, throwback time! Dug up this *old* prototype of a 3D pan/zoom timeline plotting multiple metrics on layers and visualizing cross-relationships with ribbons. This sort of visualization really gets me going. May try to resurrect some of this for our current project. #threejs pic.twitter.com/GyWLpDKjYg

— Jason Johnston (@lojjic) February 3, 2021

I wanted a 3D render of my plans for a raised garden bed, and was getting frustrated with CAD tools, so I just coded the darn thing up in a couple hours with react-three-fiber. https://t.co/20QcWGkONt #threejs #r3f pic.twitter.com/uEiCR1O5Sr

— Jason Johnston (@lojjic) January 28, 2021

InstancedUniformsMesh is now released as its own package: https://t.co/jLwimRg6vo

Here an example of it being used to set control point uniforms across many BezierMesh instances: https://t.co/Vn4ComqDN4

I hope folks find this as useful as I do! #threejs https://t.co/kHwuDAhtk2 pic.twitter.com/yhROXFR7Hf

— Jason Johnston (@lojjic) January 25, 2021

In "things I'm proud of that go largely unnoticed": the ProtectWise webapp's focus system. A focus ring that's very visible when you want it but still looks good. Keyboard navigation with Tab/Arrows/Esc that mostly behaves how you'd expect, even within menus and modals. #a11y pic.twitter.com/9dazaTX3xv

— Jason Johnston (@lojjic) December 18, 2020

Troika-three-text 0.34 is out with new support for text outlines, very helpful for increasing readability against low contrast backgrounds. Big thanks to @stephenjcorwin for inspiration and testing! #threejs pic.twitter.com/4KAO36LZAa

— Jason Johnston (@lojjic) October 19, 2020

just bumped into troika-3d-text by @lojjic a very-fast, responsive sdf font for webgl that can use google or local fonts, super easy to use 👍 https://t.co/2rRNanTYdZ pic.twitter.com/YVCPGRuK3i

— Paul Henschel (@0xca0a) May 16, 2020

Simple XR directional teleport mechanic. Nothing original, I know, but this one pretty much worked on my first try -- it feels great to be growing an instinctive feel for 3D vector math without quite so much trial and error. #threejs #troikajs #webxr pic.twitter.com/on6sEk6Cw5

— Jason Johnston (@lojjic) February 24, 2020

I've been working on this prototype of a wrist-mounted container for global UI. Summon it with a simple upward turn of the wrist. Put any arbitrary content in it: config UI controls, inventory, etc. Lots of potential uses. #threejs #troikajs #webxr pic.twitter.com/uswWBq10UP

— Jason Johnston (@lojjic) February 24, 2020

Making good progress on text selection in Troika. Next steps are better UI for selection, copy to clipboard, and eventually full editability. #WebXR #ThreeJS pic.twitter.com/UAOTRwZxUq

— Jason Johnston (@lojjic) December 19, 2019

Using the shader-calculated bezier tubes from a couple weeks ago (https://t.co/x6HtXuNyRr), here's an experiment visually connecting place names to locations on a globe. Also toying with making objects stick to a hand controller for manipulation. #threejs #webxr #troikajs pic.twitter.com/x2o6Gqucd0

— Jason Johnston (@lojjic) October 10, 2019

Messing around with a color picker UI that represents its three-dimensional color model (HSV in this case) in 3D. #threejs #webgl #troikajs pic.twitter.com/4Na4gNK3jT

— Jason Johnston (@lojjic) September 23, 2019