Skip to content

[RFC]: Numerical Integration, Differentiation, and ODE Solvers for stdlib #228

@Jyo561

Description

@Jyo561

Full name

Jyotiraditya Kuanar

University status

Yes

University name

Homi Bhabha National Institute

University program

MSc (Engineering) in Computer Science

Expected graduation

2027

Short biography

I am a Software Engineer and Full Stack Developer currently pursuing MSc (Engineering) in Computer Science at Homi Bhabha National Institute. I have experience building scalable web and real-time systems, including applications using WebSockets, AWS SQS, and modern frontend frameworks.

I have worked on data-driven systems in a research environment at IGCAR, focusing on signal processing, reliability, and machine learning for real-world monitoring. My interests lie in numerical computing, systems design, and building efficient computational tools.

Timezone

IST (UTC+5:30)

Contact details

email:jyotiradityakuanar34@gmail.com

Platform

Linux

Editor

Neovim , for its flexibility, speed, and ability to create a highly customized development workflow tailored to different tasks. I use the NvChad specifically.

Programming experience

I have built full-stack applications, real-time systems, and backend services using technologies such as Node.js, FastAPI, and PostgreSQL. I have developed systems involving WebSockets, cloud queues (AWS SQS), and modular frontend architectures. My work includes both production-grade applications and research-oriented software systems.

JavaScript experience

I have strong experience with JavaScript across full-stack development, including frameworks like React, Next.js, and Node.js. I particularly value asynchronous programming patterns such as Promises and async/await. However, I have observed that JavaScript lacks robust built-in support for numerical computing compared to ecosystems like Python.

Node.js experience

I have used Node.js extensively for backend services, real-time communication systems, and scalable APIs, including WebSocket-based systems and cloud-integrated architectures.

C/Fortran experience

I have experience with C++ and embedded systems (Arduino, Raspberry Pi), and understand low-level programming concepts such as memory management and performance considerations.

Interest in stdlib

stdlib provides a structured and comprehensive approach to building a standard library for JavaScript. I am particularly interested in extending its capabilities toward numerical computing, which aligns with my background in systems programming and data-driven analysis.

Version control

Yes

Contributions to stdlib

PR #11242 — Simpson’s rule implementation for numerical integration (open)

stdlib showcase

I developed a demonstration project implementing a Runge--Kutta (RK4) ODE solver to explore numerical methods and validate integration strategies. This helped me understand numerical stability, approximation techniques, and algorithm design.

Goals

This project aims to implement foundational numerical computing primitives in stdlib:

  • Numerical integration (trapezoidal rule, Simpson’s rule)
  • Numerical differentiation (finite difference methods)
  • ODE solvers (Runge--Kutta methods such as RK4 and RK45)

These components will serve as building blocks for simulations, scientific computing, and data-driven modeling in JavaScript.

Why this project?

Through my experience working on real-time systems and research-driven data analysis, I have observed the lack of robust numerical computation tools in JavaScript. This project directly addresses that gap and enables broader applications such as simulation, signal processing, and modeling.

Qualifications

  • Strong experience in JavaScript, Node.js, and full-stack development
  • Experience working on data-driven research systems at IGCAR
  • Familiarity with numerical methods and algorithm design

Prior art

  • SciPy (Python scientific computing library)
  • scijs ecosystem
  • Numerical methods literature (Runge--Kutta methods, quadrature techniques)

Commitment

I plan to dedicate approximately 30--35 hours per week during GSoC. I will remain consistently available and actively engaged with mentors and the community.

Schedule

Assuming a 12 week schedule,

  • Community Bonding Period:

  • Study stdlib architecture and conventions

  • Refine API design and implementation approach

  • Week 1-2:

  • Implement trapezoidal and Simpson’s rule

  • Improve PR #11242 based on feedback

  • Week 3:

  • Implement numerical differentiation methods

  • Week 4-5:

  • Implement RK4 ODE solver

  • Add tests and examples

  • Week 6: (midterm)

  • Week 7-8:

  • Improve solver stability and accuracy

  • Week 9-10:

  • Add refinements and benchmarking

  • Week 11:

  • Documentation and testing

  • Week 12:

  • Final improvements and cleanup

  • Final Week:

  • Final submission

Notes:

  • The community bonding period is a 3 week period built into GSoC to help you get to know the project community and participate in project discussion. This is an opportunity for you to setup your local development environment, learn how the project's source control works, refine your project plan, read any necessary documentation, and otherwise prepare to execute on your project project proposal.
  • Usually, even week 1 deliverables include some code.
  • By week 6, you need enough done at this point for your mentor to evaluate your progress and pass you. Usually, you want to be a bit more than halfway done.
  • By week 11, you may want to "code freeze" and focus on completing any tests and/or documentation.
  • During the final week, you'll be submitting your project.

Related issues

No response

Checklist

  • I have read and understood the Code of Conduct.
  • I have read and understood the application materials found in this repository.
  • I understand that plagiarism will not be tolerated, and I have authored this application in my own words.
  • I have read and understood the patch requirement which is necessary for my application to be considered for acceptance.
  • I have read and understood the stdlib showcase requirement which is necessary for my application to be considered for acceptance.
  • The issue name begins with [RFC]: and succinctly describes your proposal.
  • I understand that, in order to apply to be a GSoC contributor, I must submit my final application to https://summerofcode.withgoogle.com/ before the submission deadline.

Metadata

Metadata

Assignees

No one assigned

    Labels

    20262026 GSoC proposal.rfcProject proposal.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions