惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
V
Visual Studio Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
量子位
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
T
Tailwind CSS Blog
GbyAI
GbyAI
爱范儿
爱范儿
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
有赞技术团队
有赞技术团队
罗磊的独立博客
Recent Announcements
Recent Announcements
博客园 - 司徒正美
M
MIT News - Artificial intelligence
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
B
Blog RSS Feed
A
About on SuperTechFans
Hugging Face - Blog
Hugging Face - Blog
Apple Machine Learning Research
Apple Machine Learning Research
雷峰网
雷峰网

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
Building an Open MIT-Licensed Ephemeris Engine in C — JPL...
Jayesh Patel · 2026-05-25 · via DEV Community

For a long time, most of my work around astronomical and astrological software revolved around wrappers and bindings — especially around Swiss Ephemeris integrations.

Over the past few months, I decided to move deeper into the actual engine layer itself.

Instead of only building language bindings, I started building a fully open, extensible, MIT-licensed ephemeris engine in C designed for:

  • astronomy
  • astrology
  • astronomical almanac systems
  • planetary calculations
  • eclipse computations
  • sidereal and coordinate systems

That project became:

JPL Moshier Ephemeris

An independent native ephemeris engine written in C.


Why Build Another Ephemeris Engine?

Most existing ephemeris systems are:

  • closed-source or partially restricted
  • GPL/commercial licensed
  • difficult to extend cleanly
  • tightly coupled to legacy APIs
  • not designed for modern multi-language interoperability

I wanted a foundation that was:

  • fully MIT licensed
  • extensible
  • embeddable
  • project-owned
  • cross-platform
  • suitable for modern bindings and runtimes

The goal was not just to wrap existing systems, but to build an actual reusable engine layer.


Core Architecture

The engine supports multiple calculation backends and analytical models.

Supported Systems

  • JPL/CALCEPH kernel-backed calculations
  • Moshier analytical calculations
  • VSOP87 analytical planetary models
  • ELP2000 lunar theory
  • Meeus analytical algorithms

This allows mixing:

  • high-precision ephemeris kernels
  • lightweight analytical calculations
  • fallback computational modes

depending on accuracy and performance requirements.


What the Engine Supports

Currently implemented functionality includes:

  • planetary calculations
  • lunar calculations
  • solar calculations
  • eclipse calculations
  • occultation calculations
  • rise/set calculations
  • sidereal systems
  • ayanamsa support
  • house system calculations
  • fixed star calculations
  • coordinate transformations
  • time conversions
  • nutation/precession
  • topocentric calculations

API Surface

One important design goal was broad API coverage and extensibility.

Comparison

Project Public Functions Public Constants
Swiss Ephemeris 106 348
JPL Moshier Ephemeris 204 462

The engine fully covers the traditional Swiss Ephemeris-style public API surface while extending it with additional APIs and functionality.


Why MIT License Matters

Licensing was a major consideration from the beginning.

The project is MIT licensed to allow:

  • open commercial use
  • embedding into proprietary systems
  • unrestricted integration
  • easier ecosystem adoption
  • broader language bindings

without GPL-style redistribution constraints.


Multi-Language Ecosystem

On top of the native engine, I also built:

JPL Moshier Ephemeris PHP

A PHP 8.3+ FFI wrapper with prebuilt runtime libraries for:

  • Linux
  • macOS
  • Windows

The wrapper exposes the native engine directly to PHP while keeping deployment relatively simple.


Long-Term Vision

The larger goal is to build a complete open ephemeris ecosystem that can power:

  • astronomy applications
  • astrology software
  • Panchang / almanac systems
  • research tools
  • calendar systems
  • educational software
  • cross-language scientific tooling

across multiple platforms and programming languages.


Project Links

Native C Engine

jpl-ephemeris GitHub

PHP Wrapper

jpl-moshier-ephemeris-php GitHub

Packagist

Packagist package


Feedback Welcome

The project is still evolving, and I’d genuinely appreciate:

  • testing
  • benchmarking
  • API feedback
  • architecture suggestions
  • contributions

from developers working in astronomy, astrology, scientific computing, calendrical systems, or language bindings.