<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.tootsville.org/index.php?action=history&amp;feed=atom&amp;title=Builder%3AWeb_APIs_we_use</id>
		<title>Builder:Web APIs we use - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.tootsville.org/index.php?action=history&amp;feed=atom&amp;title=Builder%3AWeb_APIs_we_use"/>
		<link rel="alternate" type="text/html" href="https://wiki.tootsville.org//index.php?title=Builder:Web_APIs_we_use&amp;action=history"/>
		<updated>2026-11-11T07:50:55Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>https://wiki.tootsville.org//index.php?title=Builder:Web_APIs_we_use&amp;diff=862&amp;oldid=prev</id>
		<title>BRFennPocock at 22:20, 17 August 2016</title>
		<link rel="alternate" type="text/html" href="https://wiki.tootsville.org//index.php?title=Builder:Web_APIs_we_use&amp;diff=862&amp;oldid=prev"/>
				<updated>2016-08-17T22:20:00Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&#039;diff-marker&#039; /&gt;
				&lt;col class=&#039;diff-content&#039; /&gt;
				&lt;col class=&#039;diff-marker&#039; /&gt;
				&lt;col class=&#039;diff-content&#039; /&gt;
				&lt;tr style=&#039;vertical-align: top;&#039; lang=&#039;en&#039;&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 22:20, 17 August 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;We&amp;#039;ll be wrapping the following interfaces in the various client-side Common Lisp modules. Package names in ALL-CAPS are the CL packages wrapping the underlying libraries (if any).&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;We&amp;#039;ll be wrapping the following interfaces in the various client-side Common Lisp modules. Package names in ALL-CAPS are the CL packages wrapping the underlying libraries (if any).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The division between Parrot modules and Gossip Mouse modules is a bit artificial, but in general, device-local actions are Parrot, network tasks are Gossip Mouse. That also indicates which type of avatar is used for configuration and errors.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Parrot Modules ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Parrot Modules ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l36&quot; &gt;Line 36:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 38:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; PARROT&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; PARROT&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: PARROT package has PEEP and SQUAWK events for minor or major notifications. Desktop notifications work via [https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API/Using_the_Notifications_API Notifications API], at least on Linux and Android.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: PARROT package has PEEP and SQUAWK events for minor or major notifications. Desktop notifications work via [https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API/Using_the_Notifications_API Notifications API], at least on Linux and Android.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== First Run, Accounts ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;; PARROT.NEW-PLAYER&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: …&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;; PARROT.BUDDY-LIST&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: …&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;; PARROT.CHILD-ACCOUNT&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: …&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Sound &amp;amp; Music ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Sound &amp;amp; Music ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>BRFennPocock</name></author>	</entry>

	<entry>
		<id>https://wiki.tootsville.org//index.php?title=Builder:Web_APIs_we_use&amp;diff=861&amp;oldid=prev</id>
		<title>BRFennPocock: Created page with &quot;We&#039;ll be wrapping the following interfaces in the various client-side Common Lisp modules. Package names in ALL-CAPS are the CL packages wrapping the underlying libraries (if...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.tootsville.org//index.php?title=Builder:Web_APIs_we_use&amp;diff=861&amp;oldid=prev"/>
				<updated>2016-08-17T22:03:07Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;We&amp;#039;ll be wrapping the following interfaces in the various client-side Common Lisp modules. Package names in ALL-CAPS are the CL packages wrapping the underlying libraries (if...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;We&amp;#039;ll be wrapping the following interfaces in the various client-side Common Lisp modules. Package names in ALL-CAPS are the CL packages wrapping the underlying libraries (if any).&lt;br /&gt;
&lt;br /&gt;
== Parrot Modules ==&lt;br /&gt;
&lt;br /&gt;
=== Computation ===&lt;br /&gt;
&lt;br /&gt;
; COMMON-LISP&lt;br /&gt;
: [[JSCL]] is our Common Lisp compiler. It uses packages COMMON-LISP (alias: CL, JSCL) and will soon also export symbols into JSCL/FFI (which will affect, eg, JSCL::OGET scoping)&lt;br /&gt;
; CLOSE&lt;br /&gt;
: a simple OO-like package that isn&amp;#039;t CLOS but provides some simple OO-like integration macros.&lt;br /&gt;
&lt;br /&gt;
=== Debugging &amp;amp; Quality Assurance ===&lt;br /&gt;
&lt;br /&gt;
; WEBREPL&lt;br /&gt;
: The REPL is partially packaged via [[JSCL]], but we want to run it in its own frame in a shared context. &lt;br /&gt;
; WEBDEBUG, WEBINSPECT&lt;br /&gt;
: There may also be a debugger hook for the parrot interface (farther future).&lt;br /&gt;
; Analytics via PARROT&lt;br /&gt;
: We use Google [[Analytics]] to track events of various kinds. Some of these come from the “raw” Javascript code; others are invoked by PARROT events. We may change this to instead or also use Facebook analytics for Facebook users, etc.&lt;br /&gt;
&lt;br /&gt;
=== 3D Graphics, Physics, &amp;amp; Display ===&lt;br /&gt;
&lt;br /&gt;
; BABYLON&lt;br /&gt;
: WebGL and friends, mostly c/o [http://www.babylonjs.com/ BabylonJS] … Loading models, applying textures — integration with mesh networking&lt;br /&gt;
; DEVICE.AMBIENT-LIGHT&lt;br /&gt;
: [https://developer.mozilla.org/en-US/Apps/Fundamentals/gather_and_modify_data/Responding_to_light_conditions Ambient Light Sensitivity]&lt;br /&gt;
; UX.OVERLAY&lt;br /&gt;
: for displaying heads-up display and on-screen controls&lt;br /&gt;
; UX.PARROT&lt;br /&gt;
: …&lt;br /&gt;
; UX.GOSSIPMOUSE&lt;br /&gt;
: …&lt;br /&gt;
&lt;br /&gt;
=== Notifications ===&lt;br /&gt;
&lt;br /&gt;
; PARROT&lt;br /&gt;
: PARROT package has PEEP and SQUAWK events for minor or major notifications. Desktop notifications work via [https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API/Using_the_Notifications_API Notifications API], at least on Linux and Android.&lt;br /&gt;
&lt;br /&gt;
=== Sound &amp;amp; Music ===&lt;br /&gt;
&lt;br /&gt;
; UX.BABYLON&lt;br /&gt;
: also handles some audio, we may reach “under the hood” to touch [https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API Web Audio API] — but we&amp;#039;ll try to use Babylon&amp;#039;s interface mostly, right?&lt;br /&gt;
; UX.EVENTS&lt;br /&gt;
: Binding to the general events model for Gossipnet, et al.&lt;br /&gt;
; UX.MAKE-NOISE&lt;br /&gt;
: Discuss Toot Voices package MAKE-NOISE&lt;br /&gt;
; UX.SPEAK&lt;br /&gt;
; Not any time soon. Might just wrap browser built-ins? still very flaky. May need a polyfill.&lt;br /&gt;
&lt;br /&gt;
=== Camera, Microphone ===&lt;br /&gt;
&lt;br /&gt;
; CHATTER&lt;br /&gt;
: TODO: Discuss streaming audio, video chats, via virtual mobile in-game&lt;br /&gt;
; PLAYER-INPUT.LIPREAD&lt;br /&gt;
: Facial recognition, character facial puppetting; [https://auduno.github.io/clmtrackr/examples/clm_emotiondetection.html example here] and [https://github.com/auduno/clmtools tools] and [https://github.com/auduno/clmtrackr library]&lt;br /&gt;
; PLAYER-INPUT.LISTEN&lt;br /&gt;
: Voice recognition via [https://syl22-00.github.io/pocketsphinx.js/ PocketSphinx.JS] but we&amp;#039;ll have to work on training it for a reasonable conversational vocabulary, or else try browser built-ins, maybe allow choice between both/either (polyfill style)&lt;br /&gt;
&lt;br /&gt;
=== Gamepad, Touch, Keyboard ===&lt;br /&gt;
&lt;br /&gt;
; PLAYER-INPUT.EVENTS&lt;br /&gt;
: Generalized interface for controlling your character&lt;br /&gt;
; PLAYER-INPUT.KEYBOARD&lt;br /&gt;
: TODO: Discuss keyboard events&lt;br /&gt;
; PLAYER-INPUT.TOUCH&lt;br /&gt;
: TODO: Discuss touch events&lt;br /&gt;
; PLAYER-INPUT.GAMEPAD&lt;br /&gt;
: TODO: Discuss gamepad events&lt;br /&gt;
; PLAYER-INPUT.TABLETPAD&lt;br /&gt;
: Using a tablet or phone as a controller for another device, eg, PC&lt;br /&gt;
; PLAYER-INPUT.BLUETOOTH&lt;br /&gt;
: Might need some magic to access Bluetooth gamepads like Wiimotes&lt;br /&gt;
&lt;br /&gt;
=== Physical Device Properties ===&lt;br /&gt;
&lt;br /&gt;
; DEVICE.VIBRATION&lt;br /&gt;
: [https://davidwalsh.name/vibration-api Vibration API]&lt;br /&gt;
; DEVICE.ORIENTATION&lt;br /&gt;
: [https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model/Managing_screen_orientation Screen Orientation], also [https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model/Managing_screen_orientation Screen Orientation]&lt;br /&gt;
* Distinctly of that, [https://developer.mozilla.org/en-US/docs/Web/API/Detecting_device_orientation Device Orientation] and some [https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Orientation_and_motion_data_explained explanation of orientation and motion data] and a [https://github.com/dorukeker/gyronorm.js gyronorm polyfill]&lt;br /&gt;
* [https://developer.mozilla.org/en-US/docs/Web/API/Proximity_Events Proximity] is not super useful but might tell us when the player has forgotten and walked away.&lt;br /&gt;
* As a courtesy, we can watch [https://hacks.mozilla.org/2012/02/using-the-battery-api-part-of-webapi/ Battery status] and give a warning when the player&amp;#039;s battery is getting low&lt;br /&gt;
&lt;br /&gt;
== Gossip Mouse Modules ==&lt;br /&gt;
&lt;br /&gt;
=== HTTP ===&lt;br /&gt;
&lt;br /&gt;
; XHR&lt;br /&gt;
: Provides simple access to XMLHttpRequest objects&lt;br /&gt;
&lt;br /&gt;
=== Gossipnet ===&lt;br /&gt;
&lt;br /&gt;
; GOSSIPNET.NET&lt;br /&gt;
: Core connectivity&lt;br /&gt;
; GOSSIPNET.EVENTS&lt;br /&gt;
: Interaction with player input, Babylon, etc.&lt;br /&gt;
; GOSSIPNET.INTEGRITY&lt;br /&gt;
: TODO: discuss netsplit detection, blockchains, signatures&lt;br /&gt;
; GOSSIPNET.GENESIS&lt;br /&gt;
: TODO: discuss directory service, STUN/TURN servers&lt;br /&gt;
&lt;br /&gt;
=== Asset Distribution ===&lt;br /&gt;
&lt;br /&gt;
; ASSETS.SERVICE&lt;br /&gt;
: The asset distribution system should be using [https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API Service Workers] (much like [https://github.com/WICG/BackgroundSync Background Sync] to handle asset access transparently; see [https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers Using Service Workers]&lt;br /&gt;
; ASSETS.TORRENT&lt;br /&gt;
: WebTorrents&lt;br /&gt;
; ASSETS.ARCHIVES&lt;br /&gt;
: Archived assets, sprite sheets, globbed sounds, etc.: TODO, discuss&lt;br /&gt;
&lt;br /&gt;
=== Simulation world ===&lt;br /&gt;
&lt;br /&gt;
; WORLD.EVENT&lt;br /&gt;
: Core event bridge&lt;br /&gt;
&lt;br /&gt;
=== Network Sensitivity ===&lt;br /&gt;
&lt;br /&gt;
; DEVICE.NETWORK&lt;br /&gt;
: This game can burn through a &amp;#039;&amp;#039;lot&amp;#039;&amp;#039; of data (as with any on-line MMO, I suppose). We can use [https://developer.mozilla.org/en-US/docs/Web/API/Network_Information_API Network Information API] on Firefox Mobile to warn users who are likely to be on metered mobile connections.&lt;/div&gt;</summary>
		<author><name>BRFennPocock</name></author>	</entry>

	</feed>