{"id":997,"date":"2018-08-13T18:21:02","date_gmt":"2018-08-13T16:21:02","guid":{"rendered":"https:\/\/aerospaceresearch.net\/?p=997"},"modified":"2019-02-04T15:37:12","modified_gmt":"2019-02-04T14:37:12","slug":"gsoc18vismashantanu-visma-visual-math","status":"publish","type":"post","link":"https:\/\/aerospaceresearch.net\/?p=997","title":{"rendered":"[GSoC&#8217;18|VisMa|Shantanu] visma &#8211; VISual MAth"},"content":{"rendered":"<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-706\" src=\"https:\/\/aerospaceresearch.net\/wp-content\/uploads\/2018\/05\/vismabanner.jpg\" alt=\"\" width=\"1280\" height=\"800\" \/><\/p>\n<p><strong>visma &#8211; VISualMAth<\/strong>, an equation solver and visualizer, which aims at showing the step-by-step solution and interactive plots of a given equation.<\/p>\n<p><!--more--><span style=\"font-size: 28px; font-weight: 900;\">Deliverables<\/span><\/p>\n<p>The major changes which were proposed for the project\u00a0<strong>visma<\/strong>\u00a0during GSoC\u201918:<\/p>\n<ul>\n<li>changing the codebase to follow the object-oriented style<\/li>\n<li>calculus operations like integration, differentiation (including partial diff.)<\/li>\n<li>solving equations\/inequalities and multivariable linear equations<\/li>\n<li>improved GUI and interactive plots<\/li>\n<\/ul>\n<p>The following file structure shows which modules were added\/modified to the\u00a0<a href=\"https:\/\/github.com\/aerospaceresearch\/visma\">project<\/a>\u00a0during the GSoC period:<\/p>\n<pre>visma\n | \n |__visma (contains all modules)\n | |\n | |__calculus (added basic diff. and integr.)\n | |__functions (converted from dictionary to class based tokens for functions)\n | |__gui (added elements like qsolver, plotter, settings and modified steps displayer)\n | |__io (reorganized tokenize and added checks and parser for equations)\n | |__matrix (added matrix operation, to be integrated with GUI)\n | |__simplify (reorganized simplify into addsub and muldiv)\n | |__solvers (added solver for multivariable equation)\n | |__transform (added modules like factorization and substitution)\n |\n |__tests (unit tests for all the above modules using pytest)\n | |\n | |__test_calculus.py (constains test cases for calculus)\n : :..\n :\n |__main.py (modified to accomodate all new GUI elements)\n |__run.sh (modified to support installing, testing and packaging visma) \n |__setup.py (for packaging visma)<\/pre>\n<p>Below is a real quick demo of some of the features like calculus, solver, plotter etc which were implemented in visma. To experience\u00a0<strong>visma<\/strong>\u00a0and explore all features, go to the\u00a0<a href=\"https:\/\/github.com\/aerospaceresearch\/visma\/blob\/master\/README.md#installation\">install guide<\/a>\u00a0or\u00a0<a href=\"https:\/\/github.com\/aerospaceresearch\/visma\/wiki\">code wiki<\/a>.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-medium\" src=\"https:\/\/raw.githubusercontent.com\/wiki\/aerospaceresearch\/visma\/assets\/demo.gif\" width=\"1283\" height=\"952\" \/><\/p>\n<p>There were many new things I came across while working on this project. I learned about integrating UI elements (using\u00a0<strong><em>PyQt<\/em><\/strong>), unit-testing (using\u00a0<strong><em>pytest<\/em><\/strong>) and packaging python apps (using\u00a0<strong><em>PyPI<\/em><\/strong>). To get a deep insight into my progress and learnings throughout the completion of the project check out the\u00a0<a href=\"https:\/\/aerospaceresearch.net\/?author=14\">GSoC devlogs<\/a>\u00a0&#8211;<\/p>\n<ul>\n<li><strong>Week #01-02:\u00a0<a href=\"https:\/\/aerospaceresearch.net\/?p=691\">Making ViSMA \u2018classy\u2019<\/a><\/strong>\u00a0\u2013 Changed code to follow object-oriented style<\/li>\n<li><strong>Week #03-05:\u00a0<a href=\"https:\/\/aerospaceresearch.net\/?p=766\">Integrating the Integrator<\/a><\/strong>\u00a0\u2013 Added the calculus modules<\/li>\n<li><strong>Week #06-07:\u00a0<a href=\"https:\/\/aerospaceresearch.net\/?p=817\">Finding the Unknown<\/a><\/strong>\u00a0\u2013 Implemented solvers<\/li>\n<li><strong>Week #08-09:\u00a0<a href=\"https:\/\/aerospaceresearch.net\/?p=880\">Develop, Test, Repeat<\/a><\/strong>\u00a0\u2013 Added unit testing for all modules<\/li>\n<li><strong>Week #10-11:\u00a0<a href=\"https:\/\/aerospaceresearch.net\/?p=990\">Dynamic Simplification and Plotting<\/a><\/strong>\u00a0\u2013 Enhanced the GUI<\/li>\n<li><strong>Week #12-13:\u00a0<a href=\"https:\/\/aerospaceresearch.net\/?p=993\">Packing Up<\/a><\/strong>\u00a0\u2013 Finishing touches, packaging code, documentation<\/li>\n<\/ul>\n<h2>Future work:<\/h2>\n<p>Though the GSoC\u201918 period has ended there are a lot of new things which can be added to <strong>visma<\/strong><strong style=\"font-size: 16px;\">.\u00a0<\/strong>Some of the changes and features I (others can too) intend to add in \u00a0<strong>visma<\/strong>\u00a0<strong>\u00a0<\/strong>after GSoC are:<\/p>\n<ul>\n<li>Make visma accessible from the terminal<\/li>\n<li>Add support for more functions<\/li>\n<li>Fix the\u00a0<a href=\"https:\/\/github.com\/aerospaceresearch\/visma\/issues\">issues<\/a>\u00a0created<\/li>\n<li>Make a webapp<\/li>\n<\/ul>\n<h2>Links:<\/h2>\n<ul>\n<li><strong>Project Source<\/strong> &#8211; <a href=\"https:\/\/github.com\/aerospaceresearch\/visma\">https:\/\/github.com\/aerospaceresearch\/visma<\/a><\/li>\n<li><strong>My Commits<\/strong>\u00a0&#8211;\u00a0<a href=\"https:\/\/github.com\/aerospaceresearch\/visma\/commits?author=8hantanu\">https:\/\/github.com\/aerospaceresearch\/visma\/commits?author=8hantanu<\/a><\/li>\n<li><strong>Final PR<\/strong>\u00a0&#8211;\u00a0<a href=\"https:\/\/github.com\/aerospaceresearch\/visma\/pull\/61\">https:\/\/github.com\/aerospaceresearch\/visma\/pull\/61<\/a><\/li>\n<li><strong>Documentation<\/strong>\u00a0&#8211;\u00a0<a href=\"https:\/\/github.com\/aerospaceresearch\/visma\/wiki\">https:\/\/github.com\/aerospaceresearch\/visma\/wiki<\/a><\/li>\n<li><strong>TODO board<\/strong>\u00a0&#8211;\u00a0<a href=\"https:\/\/github.com\/aerospaceresearch\/visma\/projects\/1\">https:\/\/github.com\/aerospaceresearch\/visma\/projects\/1<\/a><\/li>\n<li><strong>Alternate link<\/strong>\u00a0&#8211;\u00a0<a href=\"https:\/\/8hantanu.github.io\/projects\/visma\">https:\/\/8hantanu.github.io\/projects\/visma<\/a><\/li>\n<\/ul>\n<div class=\"canvas\">\n<div class=\"wrapper\">\n<div class=\"initial-content\">\n<div class=\"inner\">\n<article class=\"entry-wrap\">\n<div class=\"entry-content\"><\/div>\n<\/article>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<footer id=\"footer\" class=\"site-footer\">\n<div class=\"inner\">\n<div class=\"copyright\"><\/div>\n<\/div>\n<\/footer>\n","protected":false},"excerpt":{"rendered":"<p>visma &#8211; VISualMAth, an equation solver and visualizer, which aims at showing the step-by-step solution and interactive plots of a given equation.<\/p>\n","protected":false},"author":14,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"image","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=\/wp\/v2\/posts\/997"}],"collection":[{"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=997"}],"version-history":[{"count":11,"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=\/wp\/v2\/posts\/997\/revisions"}],"predecessor-version":[{"id":1160,"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=\/wp\/v2\/posts\/997\/revisions\/1160"}],"wp:attachment":[{"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=997"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=997"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=997"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}