IP Library Granted Patent US 12,450,426
Granted Patent B1
US 12,450,426 · App. 17/555,471 · Granted Oct 21, 2025

Method and system for cellular computation and display

Inventor: Mehrdad Samadani (San Jose, CA)
G06F40/18G06F40/111G06F3/0481
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,450,426
App. No.
17/555,471
Granted
Oct 21, 2025
Kind
B1
Abstract

Methods and systems for implementing computations in cellular units. The cells may be organized in various ways, including on a canvas, or in a grid. Aspects of these cells may be easily manipulated via user interface operations. A cell may contain program instructions, which may contain references to values computed by program instructions in other cells. Cells may be repositioned, split, or combined easily via user interface operations. A spreadsheet may be converted into, or extracted from, other cellular computations.

Claims (48)

1. A method of cellular computing by a graphical user interface generated by a computer system, the method comprising:

storing within a memory a data structure comprising multiple cells, some cells of the multiple cells having one or more program instructions,

wherein the multiple cells include a first cell and a second cell, each of the first cell and the second cell having a visual representation on the graphical user interface; and

changing the memory to modify the data structure by a first adding a first program instruction and a third program instruction to the first cell, the first program instruction including a first textual identifier and causing the data structure to include a first value associated with the first textual identifier, and the third program instruction including a third textual identifier and causing the data structure to include a third value associated with the third textual identifier, the third textual identifier being different from the first textual identifier, and the third value being different from the first value,

wherein, prior to the first adding, the data structure includes neither the first textual identifier nor the third textual identifier; and

changing the memory to modify the data structure by a second adding a second program instruction to the second cell, the second program instruction referring to the first value in the data structure via the first textual identifier and referring to the third value in the data structure via the third textual identifier, the second program instruction computing a second value that is different from both the first value and the third value,

wherein, in response to the second adding, the data structure includes a digital representation of a first relationship between the first cell and the second cell, the first relationship having a visual representation on the graphical user interface comprising a first graphical connection associating the visual representations of the first cell and the second cell,

wherein, immediately prior to the second adding, the data structure does not include a digital representation of the first relationship between the first cell and the second cell.

2. The method of claim 1 , wherein the data structure represents a canvas comprising the multiple cells.

3. The method of claim 1 , wherein the data structure represents a grid comprising the multiple cells.

4. The method of claim 1 , wherein the second program instruction refers to the first value exclusively via the first textual identifier, and the second program instruction refers to the third value exclusively via the third textual identifier, and

wherein, in response to the second adding, the data structure includes a digital representation of a dependency between the first cell and the second cell, and

wherein, immediately prior to the second adding, the data structure does not include a digital representation of a dependency between the first cell and the second cell.

5. The method of claim 4 , wherein the data structure represents a grid comprising the multiple cells.

6. The method of claim 5 , wherein the first value is a data structure representing multiple numerical values.

7. The method of claim 4 , wherein after the first adding, the first cell comprises a first variable and a third variable, the first variable being associated with the first textual identifier and representing the first value, and the third variable being associated with the third textual identifier and representing the third value, the first textual identifier and the third textual identifier being user-specified textual identifiers, and

wherein, in response to the second adding, the data structure includes a digital representation of a constraint to ensure that the first cell is executed prior to the second cell being executed,

wherein, immediately prior to the second adding, the data structure does not include a digital representation of a constraint to ensure that the first cell is executed prior to the second cell being executed.

8. The method of claim 7 , wherein the data structure represents a canvas comprising the multiple cells.

9. The method of claim 8 , wherein the first value is a data structure representing multiple numerical values, and the first graphical connection extends from the visual representation of the first cell to the visual representation of the second cell on the graphical user interface.

10. The method of claim 9 , wherein the second program instruction comprises an array arithmetic operation.

11. A method of cellular computing by a graphical user interface generated by a computer system, the method comprising:

storing within a memory a data structure comprising multiple cells, some cells of the multiple cells having one or more program instructions,

wherein the multiple cells include a first cell and a second cell, and

changing the memory to modify the data structure by a first adding a first program instruction and a third program instruction to the first cell, the first program instruction causing the data structure to include a first value associated with a first user-specified textual identifier, and the third program instruction causing the data structure to include a third value associated with a third user-specified textual identifier, the third user-specified textual identifier being different from the first user-specified textual identifier, and the third value being different from the first value,

wherein, prior to the first adding, the data structure includes neither the first user-specified textual identifier nor the third user-specified textual identifier; and

changing the memory to modify the data structure by a second adding a second program instruction to the second cell, the second program instruction referring to the first value in the data structure via the first user-specified textual identifier and referring to the third value in the data structure via the third user-specified textual identifier, the second program instruction computing a second value that is different from both the first value and the third value,

wherein, in response to the second adding, the data structure includes a digital representation of a dependency between the first cell and the second cell, and

wherein, immediately prior to the second adding, the data structure does not include a digital representation of a dependency between the first cell and the second cell.

12. The method of claim 11 , wherein after the first adding, the first cell comprises a first variable and a third variable, the first variable being associated with the first user-specified textual identifier and representing the first value, the third variable being associated with the third user-specified textual identifier and representing the third value, and wherein the second program instruction refers to the first value exclusively via the first user-specified textual identifier and refers to the third value exclusively via the third user-specified textual identifier, and

wherein, in response to the second adding, the data structure includes a digital representation of a constraint to ensure that the first cell is executed prior to the second cell being executed,

wherein, immediately prior to the second adding, the data structure does not include a digital representation of a constraint to ensure that the first cell is executed prior to the second cell being executed.

13. The method of claim 12 , wherein the data structure represents a canvas comprising the multiple cells.

14. The method of claim 12 , wherein the first value is a data structure representing multiple numerical values.

15. The method of claim 14 , wherein the data structure comprising multiple cells represents a grid comprising the multiple cells.

16. A method of cellular computing by a graphical user interface generated by a computer system, the method comprising:

storing within a memory a data structure comprising multiple cells, some cells of the multiple cells having one or more program instructions,

wherein the multiple cells include a first cell and a second cell, and

changing the memory to modify the data structure by a first adding a first program instruction and a third program instruction to the first cell, the first program instruction causing the data structure to include a first value associated with a first user-specified textual identifier, and the third program instruction causing the data structure to include a third value associated with a third user-specified textual identifier, the third user-specified textual identifier being different from the first user-specified textual identifier, and the third value being different from the first value,

wherein, prior to the first adding, the data structure includes neither the first user-specified textual identifier nor the third user-specified textual identifier; and

changing the memory to modify the data structure by a second adding a second program instruction to the second cell, the second program instruction referring to the first value in the data structure via the first user-specified textual identifier and referring to the third value in the data structure via the third user-specified textual identifier,

wherein, in response to the second adding, the data structure includes a digital representation of a constraint to ensure that the first cell is executed prior to the second cell being executed,

wherein, immediately prior to the second adding, the data structure does not include a digital representation of a constraint to ensure that the first cell is executed prior to the second cell being executed.

17. The method of claim 16 , wherein the second program instruction refers to the first value exclusively via the first user-specified textual identifier, refers to the third value exclusively via the third user-specified textual identifier, and computes a second value that is different from both the first value and the third value, and

wherein each of the first cell and the second cell have a visual representation on the graphical user interface, and in response to the second adding, a first graphical connection is displayed on the graphical user interface associating the visual representations of the first cell and the second cell.

18. The method of claim 17 , wherein the data structure represents a canvas comprising the multiple cells.

19. The method of claim 17 , wherein the data structure represents a grid comprising the multiple cells.

20. The method of claim 17 , wherein the first value is a data structure representing multiple numerical values, and the first graphical connection extends from the visual representation of the first cell to the visual representation of the second cell on the graphical user interface.

Continuity (2)
Provisional Application 63215713 · Jun 28, 2021
Provisional Application 63128201 · Dec 21, 2020
References Cited (60)
US 5255363A · Seyler · 1993 [cited by examiner]
US 6460059B1 · Wisniewski · 2002 [cited by examiner]
US 7984371B2 · Zdenek · 2011 [cited by examiner]
US 8745483B2 · Chavoustie · 2014 [cited by examiner]
US 9158832B1 · Hiatt · 2015 [cited by examiner]
US 9298454B2 · Tuvian · 2016 [cited by examiner]
US 9959098B1 · Smith Devine · 2018 [cited by examiner]
US 10191897B1 · Olkin · 2019 [cited by examiner]
US 10540434B2 · Migeon · 2020 [cited by examiner]
US 10664652B2 · Campbell · 2020 [cited by examiner]
US 10740550B1 · Bosworth · 2020 [cited by examiner]
US 11550778B2 · Zarras · 2023 [cited by examiner]
US 11630948B1 · Kaptur · 2023 [cited by examiner]
US 11836444B2 · Dvorak · 2023 [cited by examiner]
US 20010007988A1 · Bauchot · 2001 [cited by examiner]
US 20020078086A1 · Alden · 2002 [cited by examiner]
US 20050081141A1 · Jonsson · 2005 [cited by examiner]
US 20060069696A1 · Becker · 2006 [cited by examiner]
US 20060080594A1 · Chavoustie · 2006 [cited by examiner]
US 20060224946A1 · Barrett · 2006 [cited by examiner]
US 20070033519A1 · Zdenek · 2007 [cited by examiner]
US 20080209444A1 · Garrett · 2008 [cited by examiner]
US 20090228776A1 · Folting · 2009 [cited by examiner]
US 20120042242A1 · Garland · 2012 [cited by examiner]
US 20120137204A1 · Petrovicky · 2012 [cited by examiner]
US 20130067305A1 · Golan · 2013 [cited by examiner]
US 20130290822A1 · Chen · 2013 [cited by examiner]
US 20140013313A1 · Eker · 2014 [cited by examiner]
US 20140359417A1 · Bar-On · 2014 [cited by examiner]
US 20140372858A1 · Campbell · 2014 [cited by examiner]
US 20150019946A1 · Zarras · 2015 [cited by examiner]
US 20150106782A1 · Tuvian · 2015 [cited by examiner]
US 20150169532A1 · Otero · 2015 [cited by examiner]
US 20170124142A1 · Becker · 2017 [cited by examiner]
US 20170154026A1 · Gong · 2017 [cited by examiner]
US 20180203838A1 · Hiatt · 2018 [cited by examiner]
US 20190197096A1 · Hiatt · 2019 [cited by examiner]
US 20190213191A1 · Shuster · 2019 [cited by examiner]
US 20190302976A1 · Polson · 2019 [cited by examiner]
US 20190354613A1 · Zoldi · 2019 [cited by examiner]
US 20200184149A1 · Honsowetz · 2020 [cited by examiner]
US 20210081605A1 · Smith · 2021 [cited by examiner]
US 20210406458A1 · Dvorak · 2021 [cited by examiner]
Markus Luckey, Martin Erwig, Gregor Engels, Systematic evolution of model-based spreadsheet applications, Journal of Visual Languages & Computing, vol. 23, Issue 5, pp. 267-286. [cited by examiner]
Dietmar Jannach, Thomas Schmitz, Birgit Hofer, Franz Wotawa, Avoiding, finding and fixing spreadsheet errors—A survey of automated approaches for spreadsheet QA, Journal of Systems and Software, vol. 94, pp. 129-150. [cited by examiner]
Philip T. Cox and Trevor J. Smedley. 1994. Using visual programming to extend the power of spreadsheet. In Proceedings of the workshop on Advanced visual interfaces (AVI '94). Association for Computing Machinery, New Yo… [cited by examiner]
P. T. Cox, F. R. Giles and T. Pietrzykowski, “Prograph: a step towards liberating programming from textual conditioning,” [Proceedings] 1989 IEEE Workshop on Visual Languages, 1989, pp. 150-156, doi: 10.1109/WVL.1989.77… [cited by examiner]
T. Igarashi, J. D. Mackinlay, Bay-Wei Chang and P. T. Zellweger, “Fluid visualization of spreadsheet structures,” Proceedings. 1998 IEEE Symposium on Visual Languages (Cat. No.98TB100254), 1998, pp. 118-125, doi: 10.110… [cited by examiner]
Hermans, Felienne F. J., Martin Pinzger and Arie van Deursen. “Breviz: Visualizing Spreadsheets using Dataflow Diagrams.” ArXiv abs/1111.6895 (2011) (Year: 2011). [cited by examiner]
Sousa, Tiago. Dataflow Programming: Concept, Languages and Applications. (2012) (Year: 2012). [cited by examiner]
Leitão, Roxanne & Roast, C.R .. (2014). Developing visualizations for spreadsheet formulae: Towards increasing the accessibility of science, technology, engineering and maths subjects. CEUR Workshop Proceedings. 1186. (… [cited by examiner]
Burnett, Margaret & Atwood, John & Djang, Rebecca & Reichwein, James & Gottfried, Herkimer & Yang, Sherry. (2001). Forms/3: A First-Order Visual Language to Explore the Boundaries of the Spreadsheet Paradigm. J. Funct. … [cited by examiner]
Hermans, Felienne & Pinzger, Martin & Deursen, Arie. (2011). Supporting professional spreadsheet users by generating leveled dataflow diagrams. Proceedings—International Conference on Software Engineering. 451-460. 10.1… [cited by examiner]
Trevor J. Smedley, Philip T. Cox, and Shannon L. Byrne. 1996. Expanding the utility of spreadsheets through the integration of visual programming and user interface objects. In Proceedings of the workshop on Advanced vi… [cited by examiner]
Chen, Ying and Hock Chuan Chan. “Visual Checking of Spreadsheets.” ArXiv abs/0805.2189 (2008): 11 pages. (Year: 2008). [cited by examiner]
W. Dou, C. Xu, S. C. Cheung and J. Wei, “CACheck: Detecting and Repairing Cell Arrays in Spreadsheets,” in IEEE Transactions on Software Engineering, vol. 43, No. 3, pp. 226-251, Mar. 1, 2017 (Year: 2017). [cited by examiner]
B. Jansen and F. Hermans, “XLBlocks: a Block-based Formula Editor for Spreadsheet Formulas,” 2019 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), Memphis, TN, USA, 2019, pp. 55-63 (Year: 2019). [cited by examiner]
Biermann, Florian & Dou, Wensheng & Sestoft, Peter. (2018). Rewriting High-Level Spreadsheet Structures into Higher-Order Functional Programs. (Year: 2018). [cited by examiner]
J. Cunha, J. Mendes, J. Saraiva and J. P. Fernandes, “Embedding and evolution of spreadsheet models in spreadsheet systems,” 2011 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), Pittsburgh, PA, … [cited by examiner]
Nunez, F et al., “ViSSh: A Data Visualisation Spreadsheet,” in Proc. Joint Eurographics & IEEE TCVG, Symp. on Visualisation, Amsterdam, The Netherlands, May 29-31, 2000, pp. 209-218. (Year: 2000). [cited by examiner]