Math engine and collaboration system for technical expression manipulation
First Claim
1. A method of low-latency math expression manipulation, communication, and collaboration across multiple peer devices, the method comprising:
- providing a first local mathematical expression tree on a first peer device and a second local mathematical expression tree on a second peer device, wherein renderings of the first and second local mathematical expression trees appear as the same expressions on respective graphical user interfaces of the first and second peer devices;
detecting, at the first peer device, that a user is dragging a portion of the expression, the portion identified as a picked node in the first local mathematical expression tree;
identifying, via the first peer device, a plurality of drop regions in the first local mathematical expression tree;
sending at least an identification of the picked node from the first peer device to the second peer device;
detecting, via the first peer device, a collision between the portion of the first expression being dragged by the user and a first drop region;
sending at least an identification of the first drop region from the first to the second peer device, and in response to the identification of the first drop region and the picked node, animating the second expression;
detecting, via the first peer device, that the user has released the portion of the first expression in proximity to a triggered drop region;
sending at least an identification of the triggered drop region to the second peer device; and
determining, via the second peer device, a rearrangement of the second local mathematical expression tree based on the identification of the picked node and the identification of the triggered drop region, and rendering the rearrangement of the second local mathematical expression tree.
2 Assignments
0 Petitions
Accused Products
Abstract
This disclosure describes systems, methods, and apparatus for low-latency math expression manipulation, communication, and collaboration across multiple peer devices. A controlling peer device can detect a drag node event, pass a network ID of a selected node to at least a second peer device, where the second peer device can locally process the network ID and update a local instantiation of an expression tree and UI rendered from the local expression tree. The controlling device can generate drop regions based on the selected node and the existing tree structure and pass an indication of the drop region to the second peer device. The controlling peer device can detect release of the dragged node within a drop region and pass a network ID of the drop region to the second peer device, which then locally updates its expression tree and UI based on the network ID of the drop region.
12 Citations
16 Claims
-
1. A method of low-latency math expression manipulation, communication, and collaboration across multiple peer devices, the method comprising:
-
providing a first local mathematical expression tree on a first peer device and a second local mathematical expression tree on a second peer device, wherein renderings of the first and second local mathematical expression trees appear as the same expressions on respective graphical user interfaces of the first and second peer devices; detecting, at the first peer device, that a user is dragging a portion of the expression, the portion identified as a picked node in the first local mathematical expression tree; identifying, via the first peer device, a plurality of drop regions in the first local mathematical expression tree; sending at least an identification of the picked node from the first peer device to the second peer device; detecting, via the first peer device, a collision between the portion of the first expression being dragged by the user and a first drop region; sending at least an identification of the first drop region from the first to the second peer device, and in response to the identification of the first drop region and the picked node, animating the second expression; detecting, via the first peer device, that the user has released the portion of the first expression in proximity to a triggered drop region; sending at least an identification of the triggered drop region to the second peer device; and determining, via the second peer device, a rearrangement of the second local mathematical expression tree based on the identification of the picked node and the identification of the triggered drop region, and rendering the rearrangement of the second local mathematical expression tree. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory, tangible computer readable storage medium, encoded with processor readable instructions to perform a method for low-latency math expression manipulation, communication, and collaboration across multiple peer devices, the method comprising:
-
providing a first local mathematical expression tree on a first peer device and a second local mathematical expression tree on a second peer device, wherein renderings of the first and second local mathematical expression trees appear as the same expressions on respective graphical user interfaces of the first and second peer devices; detecting, at the first peer device, that a user is dragging a portion of the expression, the portion identified as a picked node in the first local mathematical expression tree; identifying, via the first peer device, a plurality of drop regions in the first local mathematical expression tree; sending at least an identification of the picked node from the first peer device to the second peer device; detecting, via the first peer device, a collision between the portion of the first expression being dragged by the user and a first drop region; sending at least an identification of the first drop region from the first to the second peer device, and in response to the identification of the first drop region and the picked node, animating the second expression; detecting, via the first peer device, that the user has released the portion of the first expression in proximity to a triggered drop region; sending at least an identification of the triggered drop region to the second peer device; and determining, via the second peer device, a rearrangement of the second local mathematical expression tree based on the identification of the picked node and the identification of the triggered drop region, and rendering the rearrangement of the second local mathematical expression tree. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
Specification