Oxi ロゴ Oxi

ブラウザだけで、Word と同じ見た目を。

Oxi は、Word 文書(.docx)をブラウザ上で Word そのままのレイアウトで表示・編集するためのオープンソースエンジンです。Rust + WebAssembly でゼロから実装し、再現度は実在の文書で Microsoft Word とページごとに照合。サーバーは使わず、ファイルは 1 バイトも外に出ません。

無料 · 登録不要 · 処理はすべてブラウザ内で完結

0.80
Word との SSIM — 日本語ブラインド
ベンチマーク(初見 50 文書)
0.84
Word との SSIM — 英語ブラインド
ベンチマーク(初見 50 文書)
100%
官公庁の実文書(.docx)での
パース成功率
0
アップロードは 0 バイト
処理はすべて手元のブラウザで

再現度は「主張」ではなく「実測」

ここに並ぶ数値はすべて、リポジトリで公開している測定パイプラインで誰でも再現できます。

技術記事: Wordの改ページ位置は、GDIの整数丸めで決まっている — Wordの量子化規則を実測し、Rustで再現した方法。

英語ブラインドセット — 初見の 50 文書

英語は最初から一番厳しい測り方をしています — 公開 docx-corpus から、修正のターゲットには一切使わない凍結ブラインドベンチ 50 文書。現行セットは blind-D50(マニフェスト順位 26-30、2026-09-10 に測定前凍結)で、これがその初のピクセル測定(2026-09-11)です。前のセットは、その文書が修正対象に使われた時点で開発コーパスへ回し、数字は取り下げました — 前セットで 0.903、本セットで 0.837 ですが、別の文書なので比較はできません。英語で Oxi は 3 位です。ONLYOFFICE に 0.061、LibreOffice に 0.043 負けています。差はページ割りではありません — 50 文書中 44 文書でページ数は一致し、2 ページ以上ずれたのは 2 文書だけです。独立した 2 エンジンは前セットより 0.01 低い値を出しているので、Oxi の落ち幅 0.066 のうちセットの難しさで説明できるのは 6 分の 1 です。真値は Microsoft Word(Microsoft 365 16.0.20326.20132)、比較対象は ONLYOFFICE 9.3.1.8、LibreOffice 26.8.0.3、Polaris Office 11.115、SILURUS @silurus/ooxml 0.86.1、eigenpal @eigenpal/docx-editor-react 1.9.0、BetterOffice @betteroffice/docx 0.1.0、GenOffice 6a241c4、OfficeCLI 1.0.148 — すべて 150 DPI。OfficeCLI は自前エンジンである --render html で測っています。既定の --render auto は Word の入った Windows では描画を Word 自身に委譲し、Word と 0.996 になります — それは Word だからです。

英語ブラインドセット — 初見の 50 文書、Word との文書平均 SSIM(2026-09-11)

ONLYOFFICEWord とページ数一致 46/50 — 最多 · v9.3.1.8
0.898
LibreOfficeWord とページ数一致 45/50 · v26.8.0.3
0.880
OxiWord とページ数一致 44/50
0.837
Polaris OfficeWord とページ数一致 42/50 · v11.115
0.832
GenOfficeWord とページ数一致 41/50 · 6a241c4
0.786
SILURUSWord とページ数一致 41/50 · v0.86.1
0.783
OfficeCLIWord とページ数一致 13/50 · v1.0.148 · 自前 HTML エンジン
0.767
eigenpalWord とページ数一致 38/50 · v1.9.0
0.765
BetterOfficeWord とページ数一致 15/50 · v0.1.0 · 50 中 38 文書
0.764
0.4 0.4 0.6 0.6 0.8 0.8 1.0 1.0 Oxi 優位 ↑ LibreOffice 優位 ↓ legal: Oxi 0.730 / LibreOffice 0.903 legal: Oxi 0.863 / LibreOffice 0.875 forms: Oxi 0.845 / LibreOffice 0.901 forms: Oxi 0.836 / LibreOffice 0.976 forms: Oxi 0.974 / LibreOffice 0.946 legal: Oxi 0.831 / LibreOffice 0.855 forms: Oxi 0.850 / LibreOffice 0.974 forms: Oxi 0.994 / LibreOffice 0.911 reports: Oxi 0.670 / LibreOffice 0.754 reports: Oxi 0.623 / LibreOffice 0.933 reports: Oxi 0.665 / LibreOffice 0.689 reports: Oxi 0.861 / LibreOffice 0.878 policies: Oxi 0.965 / LibreOffice 0.922 reports: Oxi 0.751 / LibreOffice 0.863 policies: Oxi 0.625 / LibreOffice 0.801 policies: Oxi 0.942 / LibreOffice 0.840 policies: Oxi 0.814 / LibreOffice 0.826 policies: Oxi 0.697 / LibreOffice 0.739 educational: Oxi 0.768 / LibreOffice 0.814 educational: Oxi 0.562 / LibreOffice 0.559 educational: Oxi 0.688 / LibreOffice 0.929 educational: Oxi 0.871 / LibreOffice 0.852 correspondence: Oxi 0.977 / LibreOffice 0.818 correspondence: Oxi 0.960 / LibreOffice 0.941 correspondence: Oxi 0.756 / LibreOffice 0.967 correspondence: Oxi 0.644 / LibreOffice 0.758 correspondence: Oxi 0.657 / LibreOffice 0.757 educational: Oxi 0.679 / LibreOffice 0.940 technical: Oxi 0.915 / LibreOffice 0.985 technical: Oxi 0.799 / LibreOffice 0.855 technical: Oxi 0.957 / LibreOffice 0.967 technical: Oxi 0.893 / LibreOffice 0.966 administrative: Oxi 0.970 / LibreOffice 0.994 administrative: Oxi 0.892 / LibreOffice 0.828 legal: Oxi 0.925 / LibreOffice 0.805 administrative: Oxi 0.973 / LibreOffice 0.740 administrative: Oxi 0.900 / LibreOffice 0.897 administrative: Oxi 0.967 / LibreOffice 0.972 technical: Oxi 0.752 / LibreOffice 0.892 creative: Oxi 0.989 / LibreOffice 0.943 creative: Oxi 0.993 / LibreOffice 0.992 creative: Oxi 0.744 / LibreOffice 0.958 creative: Oxi 0.997 / LibreOffice 0.997 creative: Oxi 0.876 / LibreOffice 0.958 reference: Oxi 0.965 / LibreOffice 0.964 reference: Oxi 0.996 / LibreOffice 0.986 reference: Oxi 0.785 / LibreOffice 0.904 reference: Oxi 0.801 / LibreOffice 0.967 reference: Oxi 0.724 / LibreOffice 0.747 legal: Oxi 0.944 / LibreOffice 0.742 vs LibreOffice — Oxi 優位 17/50 LibreOffice の SSIM(文書ごと) Oxi の SSIM
0.4 0.4 0.6 0.6 0.8 0.8 1.0 1.0 Oxi 優位 ↑ ONLYOFFICE 優位 ↓ legal: Oxi 0.730 / ONLYOFFICE 0.878 legal: Oxi 0.863 / ONLYOFFICE 0.900 forms: Oxi 0.845 / ONLYOFFICE 0.970 forms: Oxi 0.836 / ONLYOFFICE 0.990 forms: Oxi 0.974 / ONLYOFFICE 0.990 legal: Oxi 0.831 / ONLYOFFICE 0.943 forms: Oxi 0.850 / ONLYOFFICE 0.824 forms: Oxi 0.994 / ONLYOFFICE 0.910 reports: Oxi 0.670 / ONLYOFFICE 0.919 reports: Oxi 0.623 / ONLYOFFICE 0.930 reports: Oxi 0.665 / ONLYOFFICE 0.963 reports: Oxi 0.861 / ONLYOFFICE 0.898 policies: Oxi 0.965 / ONLYOFFICE 0.977 reports: Oxi 0.751 / ONLYOFFICE 0.914 policies: Oxi 0.625 / ONLYOFFICE 0.874 policies: Oxi 0.942 / ONLYOFFICE 0.991 policies: Oxi 0.814 / ONLYOFFICE 0.829 policies: Oxi 0.697 / ONLYOFFICE 0.745 educational: Oxi 0.768 / ONLYOFFICE 0.934 educational: Oxi 0.562 / ONLYOFFICE 0.865 educational: Oxi 0.688 / ONLYOFFICE 0.655 educational: Oxi 0.871 / ONLYOFFICE 0.840 correspondence: Oxi 0.977 / ONLYOFFICE 0.987 correspondence: Oxi 0.960 / ONLYOFFICE 0.977 correspondence: Oxi 0.756 / ONLYOFFICE 0.848 correspondence: Oxi 0.644 / ONLYOFFICE 0.981 correspondence: Oxi 0.657 / ONLYOFFICE 0.658 educational: Oxi 0.679 / ONLYOFFICE 0.947 technical: Oxi 0.915 / ONLYOFFICE 0.997 technical: Oxi 0.799 / ONLYOFFICE 0.788 technical: Oxi 0.957 / ONLYOFFICE 0.988 technical: Oxi 0.893 / ONLYOFFICE 0.962 administrative: Oxi 0.970 / ONLYOFFICE 0.998 administrative: Oxi 0.892 / ONLYOFFICE 0.832 legal: Oxi 0.925 / ONLYOFFICE 0.811 administrative: Oxi 0.973 / ONLYOFFICE 0.975 administrative: Oxi 0.900 / ONLYOFFICE 0.885 administrative: Oxi 0.967 / ONLYOFFICE 0.980 technical: Oxi 0.752 / ONLYOFFICE 0.760 creative: Oxi 0.989 / ONLYOFFICE 0.985 creative: Oxi 0.993 / ONLYOFFICE 0.906 creative: Oxi 0.744 / ONLYOFFICE 0.797 creative: Oxi 0.997 / ONLYOFFICE 0.997 creative: Oxi 0.876 / ONLYOFFICE 0.702 reference: Oxi 0.965 / ONLYOFFICE 0.973 reference: Oxi 0.996 / ONLYOFFICE 0.996 reference: Oxi 0.785 / ONLYOFFICE 0.960 reference: Oxi 0.801 / ONLYOFFICE 0.963 reference: Oxi 0.724 / ONLYOFFICE 0.738 legal: Oxi 0.944 / ONLYOFFICE 0.757 vs ONLYOFFICE — Oxi 優位 13/50 ONLYOFFICE の SSIM(文書ごと) Oxi の SSIM
0.4 0.4 0.6 0.6 0.8 0.8 1.0 1.0 Oxi 優位 ↑ SILURUS 優位 ↓ legal: Oxi 0.730 / SILURUS 0.734 legal: Oxi 0.863 / SILURUS 0.777 forms: Oxi 0.845 / SILURUS 0.809 forms: Oxi 0.836 / SILURUS 0.832 forms: Oxi 0.974 / SILURUS 0.883 legal: Oxi 0.831 / SILURUS 0.816 forms: Oxi 0.850 / SILURUS 0.863 forms: Oxi 0.994 / SILURUS 0.911 reports: Oxi 0.670 / SILURUS 0.666 reports: Oxi 0.623 / SILURUS 0.629 reports: Oxi 0.665 / SILURUS 0.662 reports: Oxi 0.861 / SILURUS 0.699 policies: Oxi 0.965 / SILURUS 0.845 reports: Oxi 0.751 / SILURUS 0.729 policies: Oxi 0.625 / SILURUS 0.790 policies: Oxi 0.942 / SILURUS 0.837 policies: Oxi 0.814 / SILURUS 0.824 policies: Oxi 0.697 / SILURUS 0.725 educational: Oxi 0.768 / SILURUS 0.622 educational: Oxi 0.562 / SILURUS 0.528 educational: Oxi 0.871 / SILURUS 0.775 correspondence: Oxi 0.977 / SILURUS 0.871 correspondence: Oxi 0.960 / SILURUS 0.722 correspondence: Oxi 0.756 / SILURUS 0.865 correspondence: Oxi 0.644 / SILURUS 0.637 correspondence: Oxi 0.657 / SILURUS 0.662 educational: Oxi 0.679 / SILURUS 0.682 technical: Oxi 0.915 / SILURUS 0.915 technical: Oxi 0.799 / SILURUS 0.780 technical: Oxi 0.957 / SILURUS 0.959 technical: Oxi 0.893 / SILURUS 0.869 administrative: Oxi 0.970 / SILURUS 0.924 administrative: Oxi 0.892 / SILURUS 0.810 legal: Oxi 0.925 / SILURUS 0.800 administrative: Oxi 0.973 / SILURUS 0.600 administrative: Oxi 0.900 / SILURUS 0.659 administrative: Oxi 0.967 / SILURUS 0.915 technical: Oxi 0.752 / SILURUS 0.726 creative: Oxi 0.989 / SILURUS 0.864 creative: Oxi 0.993 / SILURUS 0.896 creative: Oxi 0.744 / SILURUS 0.763 creative: Oxi 0.997 / SILURUS 0.965 creative: Oxi 0.876 / SILURUS 0.685 reference: Oxi 0.965 / SILURUS 0.917 reference: Oxi 0.996 / SILURUS 0.943 reference: Oxi 0.785 / SILURUS 0.750 reference: Oxi 0.801 / SILURUS 0.747 reference: Oxi 0.724 / SILURUS 0.716 vs SILURUS — Oxi 優位 37/48 SILURUS の SSIM(文書ごと) Oxi の SSIM
0.4 0.4 0.6 0.6 0.8 0.8 1.0 1.0 Oxi 優位 ↑ BetterOffice 優位 ↓ legal: Oxi 0.730 / BetterOffice 0.698 legal: Oxi 0.863 / BetterOffice 0.732 forms: Oxi 0.845 / BetterOffice 0.701 forms: Oxi 0.836 / BetterOffice 0.844 forms: Oxi 0.974 / BetterOffice 0.885 legal: Oxi 0.831 / BetterOffice 0.790 forms: Oxi 0.850 / BetterOffice 0.843 forms: Oxi 0.994 / BetterOffice 0.909 policies: Oxi 0.965 / BetterOffice 0.775 policies: Oxi 0.625 / BetterOffice 0.683 policies: Oxi 0.942 / BetterOffice 0.682 policies: Oxi 0.814 / BetterOffice 0.804 policies: Oxi 0.697 / BetterOffice 0.700 educational: Oxi 0.768 / BetterOffice 0.603 educational: Oxi 0.562 / BetterOffice 0.511 educational: Oxi 0.688 / BetterOffice 0.709 educational: Oxi 0.871 / BetterOffice 0.786 correspondence: Oxi 0.977 / BetterOffice 0.828 correspondence: Oxi 0.960 / BetterOffice 0.681 correspondence: Oxi 0.756 / BetterOffice 0.783 correspondence: Oxi 0.644 / BetterOffice 0.666 correspondence: Oxi 0.657 / BetterOffice 0.755 educational: Oxi 0.679 / BetterOffice 0.745 administrative: Oxi 0.970 / BetterOffice 0.892 administrative: Oxi 0.892 / BetterOffice 0.722 legal: Oxi 0.925 / BetterOffice 0.779 administrative: Oxi 0.973 / BetterOffice 0.672 administrative: Oxi 0.900 / BetterOffice 0.659 administrative: Oxi 0.967 / BetterOffice 0.778 creative: Oxi 0.989 / BetterOffice 0.875 creative: Oxi 0.993 / BetterOffice 0.898 creative: Oxi 0.744 / BetterOffice 0.754 creative: Oxi 0.997 / BetterOffice 0.942 creative: Oxi 0.876 / BetterOffice 0.645 reference: Oxi 0.965 / BetterOffice 0.912 reference: Oxi 0.996 / BetterOffice 0.931 reference: Oxi 0.801 / BetterOffice 0.738 reference: Oxi 0.724 / BetterOffice 0.725 vs BetterOffice — Oxi 優位 28/38 BetterOffice の SSIM(文書ごと) Oxi の SSIM
0.4 0.4 0.6 0.6 0.8 0.8 1.0 1.0 Oxi 優位 ↑ eigenpal 優位 ↓ legal: Oxi 0.730 / eigenpal 0.673 legal: Oxi 0.863 / eigenpal 0.662 forms: Oxi 0.845 / eigenpal 0.814 forms: Oxi 0.836 / eigenpal 0.798 forms: Oxi 0.974 / eigenpal 0.894 legal: Oxi 0.831 / eigenpal 0.783 forms: Oxi 0.850 / eigenpal 0.847 forms: Oxi 0.994 / eigenpal 0.910 reports: Oxi 0.670 / eigenpal 0.632 reports: Oxi 0.623 / eigenpal 0.626 reports: Oxi 0.665 / eigenpal 0.701 reports: Oxi 0.861 / eigenpal 0.694 policies: Oxi 0.965 / eigenpal 0.745 reports: Oxi 0.751 / eigenpal 0.693 policies: Oxi 0.625 / eigenpal 0.649 policies: Oxi 0.942 / eigenpal 0.792 policies: Oxi 0.814 / eigenpal 0.814 policies: Oxi 0.697 / eigenpal 0.718 educational: Oxi 0.768 / eigenpal 0.601 educational: Oxi 0.562 / eigenpal 0.447 educational: Oxi 0.688 / eigenpal 0.658 educational: Oxi 0.871 / eigenpal 0.754 correspondence: Oxi 0.977 / eigenpal 0.872 correspondence: Oxi 0.960 / eigenpal 0.756 correspondence: Oxi 0.756 / eigenpal 0.732 correspondence: Oxi 0.644 / eigenpal 0.639 correspondence: Oxi 0.657 / eigenpal 0.631 educational: Oxi 0.679 / eigenpal 0.714 technical: Oxi 0.915 / eigenpal 0.893 technical: Oxi 0.799 / eigenpal 0.779 technical: Oxi 0.957 / eigenpal 0.942 technical: Oxi 0.893 / eigenpal 0.854 administrative: Oxi 0.970 / eigenpal 0.875 administrative: Oxi 0.892 / eigenpal 0.839 legal: Oxi 0.925 / eigenpal 0.794 administrative: Oxi 0.973 / eigenpal 0.795 administrative: Oxi 0.900 / eigenpal 0.652 administrative: Oxi 0.967 / eigenpal 0.776 technical: Oxi 0.752 / eigenpal 0.725 creative: Oxi 0.989 / eigenpal 0.906 creative: Oxi 0.993 / eigenpal 0.895 creative: Oxi 0.744 / eigenpal 0.756 creative: Oxi 0.997 / eigenpal 0.952 creative: Oxi 0.876 / eigenpal 0.656 reference: Oxi 0.965 / eigenpal 0.941 reference: Oxi 0.996 / eigenpal 0.977 reference: Oxi 0.785 / eigenpal 0.766 reference: Oxi 0.801 / eigenpal 0.736 reference: Oxi 0.724 / eigenpal 0.702 vs eigenpal — 49 文書中 43 文書で Oxi 優位 eigenpal SSIM(文書ごと) Oxi SSIM
0.4 0.4 0.6 0.6 0.8 0.8 1.0 1.0 Oxi 優位 ↑ GenOffice 優位 ↓ legal: Oxi 0.953 / GenOffice 0.939 legal: Oxi 0.859 / GenOffice 0.861 forms: Oxi 0.954 / GenOffice 0.870 forms: Oxi 0.935 / GenOffice 0.882 legal: Oxi 0.810 / GenOffice 0.750 legal: Oxi 0.811 / GenOffice 0.752 forms: Oxi 0.919 / GenOffice 0.818 forms: Oxi 0.642 / GenOffice 0.613 legal: Oxi 0.813 / GenOffice 0.736 reports: Oxi 0.934 / GenOffice 0.880 forms: Oxi 0.815 / GenOffice 0.795 reports: Oxi 0.998 / GenOffice 0.989 reports: Oxi 0.567 / GenOffice 0.571 reports: Oxi 0.649 / GenOffice 0.624 policies: Oxi 0.603 / GenOffice 0.706 reports: Oxi 0.757 / GenOffice 0.715 policies: Oxi 0.957 / GenOffice 0.872 educational: Oxi 0.809 / GenOffice 0.764 policies: Oxi 0.810 / GenOffice 0.730 educational: Oxi 0.794 / GenOffice 0.796 policies: Oxi 0.770 / GenOffice 0.740 educational: Oxi 0.508 / GenOffice 0.564 educational: Oxi 0.628 / GenOffice 0.585 correspondence: Oxi 0.964 / GenOffice 0.883 correspondence: Oxi 0.676 / GenOffice 0.570 educational: Oxi 0.710 / GenOffice 0.753 correspondence: Oxi 0.866 / GenOffice 0.753 correspondence: Oxi 0.729 / GenOffice 0.718 correspondence: Oxi 0.918 / GenOffice 0.786 technical: Oxi 0.674 / GenOffice 0.666 technical: Oxi 0.846 / GenOffice 0.678 technical: Oxi 0.963 / GenOffice 0.896 technical: Oxi 0.850 / GenOffice 0.659 administrative: Oxi 0.599 / GenOffice 0.600 administrative: Oxi 0.944 / GenOffice 0.900 technical: Oxi 0.879 / GenOffice 0.936 administrative: Oxi 0.978 / GenOffice 0.982 administrative: Oxi 0.761 / GenOffice 0.750 creative: Oxi 0.828 / GenOffice 0.692 creative: Oxi 0.798 / GenOffice 0.781 administrative: Oxi 0.809 / GenOffice 0.701 creative: Oxi 0.738 / GenOffice 0.573 reference: Oxi 0.897 / GenOffice 0.705 reference: Oxi 0.573 / GenOffice 0.714 creative: Oxi 0.609 / GenOffice 0.639 creative: Oxi 0.928 / GenOffice 0.811 reference: Oxi 0.644 / GenOffice 0.695 reference: Oxi 0.926 / GenOffice 0.922 reference: Oxi 0.957 / GenOffice 0.857 policies: Oxi 0.764 / GenOffice 0.705 vs GenOffice — 50 文書中 38 文書で Oxi 優位 GenOffice SSIM(文書ごと) Oxi SSIM
上: エンジンごとの平均 — 右端の破線が Microsoft Word 自身(1.00)。SILURUS はアーキテクチャが最も近い競合(Oxi と同じく Rust + WebAssembly で Canvas に描画)、ONLYOFFICE と LibreOffice は成熟したネイティブスイート、BetterOffice(Rust + WebAssembly のエディタスイート)と eigenpal(ProseMirror ベースの DOM レンダラ、Apache-2.0)は 2026-07-27、GenOffice(Genspark の AI オフィススイート、Apache-2.0)は 2026-08-06 に比較に加わりました。各バーはそのバーに書かれたバージョンでの 2026-08-31 測定値で、いずれも同じ凍結グラウンドトゥルースに対して測定しています。下: 点 1 つが文書 1 件で、縦軸が Oxi。破線の対角線より上にある点が「Oxi のほうが Word に近い」文書です。ブラインドセットは「測定はするが修正対象にはしない」文書群なので、初見の実力がそのまま出ます — 負けている数字もそのまま公開しています。

日本語ブラインドセット — 初見の 50 文書

日本語も同じ厳しさで測ります。現行セットは blind-C50(順位 16-20、2026-08-31 に測定前凍結)で、これがその初測定です。前の日本語ブラインドは同日に開発コーパスへ降格しました。Oxi はピクセルで首位(0.802)ですが、SILURUS(0.790)・LibreOffice(0.788)との差は 0.012〜0.015 で、50 文書では決定的ではありません。ページ数一致は ONLYOFFICE の方が多く(40/50 対 Oxi 35/50)、両方で勝ってはいません。エンジンの順位は言語で入れ替わります — ONLYOFFICE は英語 1 位・日本語 5 位、SILURUS は英語 4 位・日本語 2 位 — これが言語ごとにブラインドを持つ理由です。同じ日・同じバイナリの独立した 2 セット(blind-B50 / blind-C50)は 0.842 と 0.802、ページ数一致は 45/50 と 35/50 でした。この 0.040 はエンジンの変化ではなくセットの難易度差で、単一のブラインド値には ±0.02 程度の幅があります。

日本語ブラインドセット — 初見の 50 文書、Word との文書平均 SSIM(2026-09-11)

OxiWord とページ数一致 40/50
0.802
Polaris OfficeWord とページ数一致 40/50 · v11.115
0.799
LibreOfficeWord とページ数一致 40/50 · v26.8.0.3
0.792
SILURUSWord とページ数一致 37/50 · v0.86.1
0.777
ONLYOFFICEWord とページ数一致 41/50 — 最多 · v9.3.1.8
0.760
GenOfficeWord とページ数一致 33/50 · 6a241c4
0.758
OfficeCLIWord とページ数一致 26/50 · v1.0.148 · 自前 HTML エンジン
0.750
eigenpalWord とページ数一致 34/50 · v1.9.0
0.721
0.4 0.4 0.6 0.6 0.8 0.8 1.0 1.0 Oxi 優位 ↑ LibreOffice 優位 ↓ legal: Oxi 0.953 / LibreOffice 0.941 legal: Oxi 0.859 / LibreOffice 0.893 forms: Oxi 0.954 / LibreOffice 0.940 forms: Oxi 0.935 / LibreOffice 0.940 legal: Oxi 0.810 / LibreOffice 0.805 legal: Oxi 0.811 / LibreOffice 0.804 forms: Oxi 0.919 / LibreOffice 0.948 forms: Oxi 0.642 / LibreOffice 0.631 legal: Oxi 0.813 / LibreOffice 0.740 reports: Oxi 0.934 / LibreOffice 0.988 forms: Oxi 0.815 / LibreOffice 0.834 reports: Oxi 0.998 / LibreOffice 0.987 reports: Oxi 0.567 / LibreOffice 0.523 reports: Oxi 0.649 / LibreOffice 0.641 policies: Oxi 0.603 / LibreOffice 0.612 reports: Oxi 0.757 / LibreOffice 0.724 policies: Oxi 0.957 / LibreOffice 0.861 educational: Oxi 0.809 / LibreOffice 0.773 policies: Oxi 0.810 / LibreOffice 0.760 educational: Oxi 0.794 / LibreOffice 0.788 policies: Oxi 0.770 / LibreOffice 0.748 educational: Oxi 0.508 / LibreOffice 0.570 educational: Oxi 0.628 / LibreOffice 0.682 correspondence: Oxi 0.964 / LibreOffice 0.935 correspondence: Oxi 0.676 / LibreOffice 0.702 educational: Oxi 0.710 / LibreOffice 0.663 correspondence: Oxi 0.866 / LibreOffice 0.753 correspondence: Oxi 0.729 / LibreOffice 0.710 correspondence: Oxi 0.918 / LibreOffice 0.763 technical: Oxi 0.674 / LibreOffice 0.702 technical: Oxi 0.846 / LibreOffice 0.647 technical: Oxi 0.963 / LibreOffice 0.990 technical: Oxi 0.850 / LibreOffice 0.727 administrative: Oxi 0.599 / LibreOffice 0.612 administrative: Oxi 0.944 / LibreOffice 0.889 technical: Oxi 0.879 / LibreOffice 0.916 administrative: Oxi 0.978 / LibreOffice 0.987 administrative: Oxi 0.761 / LibreOffice 0.739 creative: Oxi 0.828 / LibreOffice 0.858 creative: Oxi 0.798 / LibreOffice 0.779 administrative: Oxi 0.809 / LibreOffice 0.720 creative: Oxi 0.738 / LibreOffice 0.712 reference: Oxi 0.897 / LibreOffice 0.763 reference: Oxi 0.573 / LibreOffice 0.809 creative: Oxi 0.609 / LibreOffice 0.927 creative: Oxi 0.928 / LibreOffice 0.819 reference: Oxi 0.644 / LibreOffice 0.713 reference: Oxi 0.926 / LibreOffice 0.960 reference: Oxi 0.957 / LibreOffice 0.823 policies: Oxi 0.764 / LibreOffice 0.814 vs LibreOffice — Oxi 優位 30/50 LibreOffice の SSIM(文書ごと) Oxi の SSIM
0.4 0.4 0.6 0.6 0.8 0.8 1.0 1.0 Oxi 優位 ↑ ONLYOFFICE 優位 ↓ legal: Oxi 0.953 / ONLYOFFICE 0.916 legal: Oxi 0.859 / ONLYOFFICE 0.851 forms: Oxi 0.954 / ONLYOFFICE 0.863 forms: Oxi 0.935 / ONLYOFFICE 0.905 legal: Oxi 0.810 / ONLYOFFICE 0.820 legal: Oxi 0.811 / ONLYOFFICE 0.813 forms: Oxi 0.919 / ONLYOFFICE 0.762 forms: Oxi 0.642 / ONLYOFFICE 0.620 legal: Oxi 0.813 / ONLYOFFICE 0.826 reports: Oxi 0.934 / ONLYOFFICE 0.875 forms: Oxi 0.815 / ONLYOFFICE 0.808 reports: Oxi 0.998 / ONLYOFFICE 0.979 reports: Oxi 0.567 / ONLYOFFICE 0.526 reports: Oxi 0.649 / ONLYOFFICE 0.676 policies: Oxi 0.603 / ONLYOFFICE 0.605 reports: Oxi 0.757 / ONLYOFFICE 0.870 policies: Oxi 0.957 / ONLYOFFICE 0.605 educational: Oxi 0.809 / ONLYOFFICE 0.707 policies: Oxi 0.810 / ONLYOFFICE 0.729 educational: Oxi 0.794 / ONLYOFFICE 0.750 policies: Oxi 0.770 / ONLYOFFICE 0.693 educational: Oxi 0.508 / ONLYOFFICE 0.506 educational: Oxi 0.628 / ONLYOFFICE 0.567 correspondence: Oxi 0.964 / ONLYOFFICE 0.956 correspondence: Oxi 0.676 / ONLYOFFICE 0.757 educational: Oxi 0.710 / ONLYOFFICE 0.651 correspondence: Oxi 0.866 / ONLYOFFICE 0.687 correspondence: Oxi 0.729 / ONLYOFFICE 0.731 correspondence: Oxi 0.918 / ONLYOFFICE 0.703 technical: Oxi 0.674 / ONLYOFFICE 0.674 technical: Oxi 0.846 / ONLYOFFICE 0.700 technical: Oxi 0.963 / ONLYOFFICE 0.974 technical: Oxi 0.850 / ONLYOFFICE 0.659 administrative: Oxi 0.599 / ONLYOFFICE 0.588 administrative: Oxi 0.944 / ONLYOFFICE 0.850 technical: Oxi 0.879 / ONLYOFFICE 0.800 administrative: Oxi 0.978 / ONLYOFFICE 0.955 administrative: Oxi 0.761 / ONLYOFFICE 0.720 creative: Oxi 0.828 / ONLYOFFICE 0.769 creative: Oxi 0.798 / ONLYOFFICE 0.694 administrative: Oxi 0.809 / ONLYOFFICE 0.680 creative: Oxi 0.738 / ONLYOFFICE 0.673 reference: Oxi 0.897 / ONLYOFFICE 0.888 reference: Oxi 0.573 / ONLYOFFICE 0.748 creative: Oxi 0.609 / ONLYOFFICE 0.835 creative: Oxi 0.928 / ONLYOFFICE 0.846 reference: Oxi 0.644 / ONLYOFFICE 0.725 reference: Oxi 0.926 / ONLYOFFICE 0.945 reference: Oxi 0.957 / ONLYOFFICE 0.790 policies: Oxi 0.764 / ONLYOFFICE 0.736 vs ONLYOFFICE — Oxi 優位 36/50 ONLYOFFICE の SSIM(文書ごと) Oxi の SSIM
0.4 0.4 0.6 0.6 0.8 0.8 1.0 1.0 Oxi 優位 ↑ SILURUS 優位 ↓ legal: Oxi 0.953 / SILURUS 0.941 legal: Oxi 0.859 / SILURUS 0.846 forms: Oxi 0.954 / SILURUS 0.872 forms: Oxi 0.935 / SILURUS 0.853 legal: Oxi 0.810 / SILURUS 0.884 legal: Oxi 0.811 / SILURUS 0.827 forms: Oxi 0.919 / SILURUS 0.785 forms: Oxi 0.642 / SILURUS 0.637 legal: Oxi 0.813 / SILURUS 0.766 reports: Oxi 0.934 / SILURUS 0.928 forms: Oxi 0.815 / SILURUS 0.809 reports: Oxi 0.998 / SILURUS 0.986 reports: Oxi 0.649 / SILURUS 0.613 policies: Oxi 0.603 / SILURUS 0.638 reports: Oxi 0.757 / SILURUS 0.733 policies: Oxi 0.957 / SILURUS 0.858 educational: Oxi 0.809 / SILURUS 0.870 policies: Oxi 0.810 / SILURUS 0.730 educational: Oxi 0.794 / SILURUS 0.767 policies: Oxi 0.770 / SILURUS 0.759 educational: Oxi 0.508 / SILURUS 0.536 educational: Oxi 0.628 / SILURUS 0.556 correspondence: Oxi 0.964 / SILURUS 0.918 correspondence: Oxi 0.676 / SILURUS 0.591 educational: Oxi 0.710 / SILURUS 0.812 correspondence: Oxi 0.866 / SILURUS 0.744 correspondence: Oxi 0.729 / SILURUS 0.711 correspondence: Oxi 0.918 / SILURUS 0.790 technical: Oxi 0.674 / SILURUS 0.711 technical: Oxi 0.846 / SILURUS 0.706 technical: Oxi 0.963 / SILURUS 0.921 technical: Oxi 0.850 / SILURUS 0.652 administrative: Oxi 0.599 / SILURUS 0.597 administrative: Oxi 0.944 / SILURUS 0.853 technical: Oxi 0.879 / SILURUS 0.875 administrative: Oxi 0.978 / SILURUS 0.987 administrative: Oxi 0.761 / SILURUS 0.708 creative: Oxi 0.828 / SILURUS 0.701 creative: Oxi 0.798 / SILURUS 0.766 administrative: Oxi 0.809 / SILURUS 0.710 creative: Oxi 0.738 / SILURUS 0.774 reference: Oxi 0.897 / SILURUS 0.921 reference: Oxi 0.573 / SILURUS 0.666 creative: Oxi 0.609 / SILURUS 0.695 creative: Oxi 0.928 / SILURUS 0.884 reference: Oxi 0.644 / SILURUS 0.712 reference: Oxi 0.926 / SILURUS 0.949 reference: Oxi 0.957 / SILURUS 0.837 policies: Oxi 0.764 / SILURUS 0.692 vs SILURUS — Oxi 優位 35/49 SILURUS の SSIM(文書ごと) Oxi の SSIM

日本語の図に BetterOffice 0.1.0 はありません。英語では完走しましたが、日本語では 1 文書目の出力すら返らず、未完走として扱いました。推定値は入れていません。

0.4 0.4 0.6 0.6 0.8 0.8 1.0 1.0 Oxi 優位 ↑ eigenpal 優位 ↓ legal: Oxi 0.953 / eigenpal 0.907 legal: Oxi 0.859 / eigenpal 0.831 forms: Oxi 0.954 / eigenpal 0.858 forms: Oxi 0.935 / eigenpal 0.838 legal: Oxi 0.810 / eigenpal 0.743 legal: Oxi 0.811 / eigenpal 0.746 forms: Oxi 0.919 / eigenpal 0.783 forms: Oxi 0.642 / eigenpal 0.582 legal: Oxi 0.813 / eigenpal 0.689 reports: Oxi 0.934 / eigenpal 0.861 forms: Oxi 0.815 / eigenpal 0.801 reports: Oxi 0.998 / eigenpal 0.978 reports: Oxi 0.567 / eigenpal 0.538 reports: Oxi 0.649 / eigenpal 0.613 policies: Oxi 0.603 / eigenpal 0.688 reports: Oxi 0.757 / eigenpal 0.709 policies: Oxi 0.957 / eigenpal 0.598 educational: Oxi 0.809 / eigenpal 0.811 policies: Oxi 0.810 / eigenpal 0.586 educational: Oxi 0.794 / eigenpal 0.716 policies: Oxi 0.770 / eigenpal 0.679 educational: Oxi 0.508 / eigenpal 0.492 educational: Oxi 0.628 / eigenpal 0.563 correspondence: Oxi 0.964 / eigenpal 0.917 correspondence: Oxi 0.676 / eigenpal 0.493 educational: Oxi 0.710 / eigenpal 0.624 correspondence: Oxi 0.866 / eigenpal 0.673 correspondence: Oxi 0.729 / eigenpal 0.690 correspondence: Oxi 0.918 / eigenpal 0.709 technical: Oxi 0.674 / eigenpal 0.632 technical: Oxi 0.846 / eigenpal 0.649 technical: Oxi 0.963 / eigenpal 0.893 technical: Oxi 0.850 / eigenpal 0.640 administrative: Oxi 0.599 / eigenpal 0.542 administrative: Oxi 0.944 / eigenpal 0.849 technical: Oxi 0.879 / eigenpal 0.811 administrative: Oxi 0.978 / eigenpal 0.947 administrative: Oxi 0.761 / eigenpal 0.680 creative: Oxi 0.828 / eigenpal 0.654 creative: Oxi 0.798 / eigenpal 0.674 administrative: Oxi 0.809 / eigenpal 0.628 creative: Oxi 0.738 / eigenpal 0.567 reference: Oxi 0.897 / eigenpal 0.884 reference: Oxi 0.573 / eigenpal 0.762 creative: Oxi 0.609 / eigenpal 0.611 creative: Oxi 0.928 / eigenpal 0.819 reference: Oxi 0.644 / eigenpal 0.677 reference: Oxi 0.926 / eigenpal 0.915 reference: Oxi 0.957 / eigenpal 0.788 policies: Oxi 0.764 / eigenpal 0.691 vs eigenpal — 50 文書中 45 文書で Oxi 優位 eigenpal SSIM(文書ごと) Oxi SSIM
0.4 0.4 0.6 0.6 0.8 0.8 1.0 1.0 Oxi 優位 ↑ GenOffice 優位 ↓ legal: Oxi 0.953 / GenOffice 0.939 legal: Oxi 0.859 / GenOffice 0.861 forms: Oxi 0.954 / GenOffice 0.870 forms: Oxi 0.935 / GenOffice 0.882 legal: Oxi 0.810 / GenOffice 0.750 legal: Oxi 0.811 / GenOffice 0.752 forms: Oxi 0.919 / GenOffice 0.818 forms: Oxi 0.642 / GenOffice 0.613 legal: Oxi 0.813 / GenOffice 0.736 reports: Oxi 0.934 / GenOffice 0.880 forms: Oxi 0.815 / GenOffice 0.795 reports: Oxi 0.998 / GenOffice 0.989 reports: Oxi 0.567 / GenOffice 0.571 reports: Oxi 0.649 / GenOffice 0.624 policies: Oxi 0.603 / GenOffice 0.706 reports: Oxi 0.757 / GenOffice 0.715 policies: Oxi 0.957 / GenOffice 0.872 educational: Oxi 0.809 / GenOffice 0.764 policies: Oxi 0.810 / GenOffice 0.730 educational: Oxi 0.794 / GenOffice 0.796 policies: Oxi 0.770 / GenOffice 0.740 educational: Oxi 0.508 / GenOffice 0.564 educational: Oxi 0.628 / GenOffice 0.585 correspondence: Oxi 0.964 / GenOffice 0.883 correspondence: Oxi 0.676 / GenOffice 0.570 educational: Oxi 0.710 / GenOffice 0.753 correspondence: Oxi 0.866 / GenOffice 0.753 correspondence: Oxi 0.729 / GenOffice 0.718 correspondence: Oxi 0.918 / GenOffice 0.786 technical: Oxi 0.674 / GenOffice 0.666 technical: Oxi 0.846 / GenOffice 0.678 technical: Oxi 0.963 / GenOffice 0.896 technical: Oxi 0.850 / GenOffice 0.659 administrative: Oxi 0.599 / GenOffice 0.600 administrative: Oxi 0.944 / GenOffice 0.900 technical: Oxi 0.879 / GenOffice 0.936 administrative: Oxi 0.978 / GenOffice 0.982 administrative: Oxi 0.761 / GenOffice 0.750 creative: Oxi 0.828 / GenOffice 0.692 creative: Oxi 0.798 / GenOffice 0.781 administrative: Oxi 0.809 / GenOffice 0.701 creative: Oxi 0.738 / GenOffice 0.573 reference: Oxi 0.897 / GenOffice 0.705 reference: Oxi 0.573 / GenOffice 0.714 creative: Oxi 0.609 / GenOffice 0.639 creative: Oxi 0.928 / GenOffice 0.811 reference: Oxi 0.644 / GenOffice 0.695 reference: Oxi 0.926 / GenOffice 0.922 reference: Oxi 0.957 / GenOffice 0.857 policies: Oxi 0.764 / GenOffice 0.705 vs GenOffice — 50 文書中 38 文書で Oxi 優位 GenOffice SSIM(文書ごと) Oxi SSIM
上: エンジンごとの平均 — 右端の破線が Microsoft Word 自身(1.00)。下: 点の 1 つ 1 つが 1 文書で、縦軸が Oxi。破線の対角線より上の点は、その文書で Oxi の方が Word に近かったことを意味します。ブラインドセットは測定するだけで修正対象にはしないため、これは「初見」の汎化性能をそのまま公開したものです。

PowerPoint ブラインドセット — 初見の 48 デッキ

同じ測定規律を .pptx にも適用しています。公開データセット noxneural/pptx_collection_templates から(取得前に宣言したシードで)無作為抽出した 50 デッキを、Microsoft PowerPoint 自身の描画と 150 DPI で照合 — どのエンジンでも開けない破損ファイル 2 件を除き 48 デッキ。初回測定 0.679(2026-08-13)から 1 週間のレンダラ改善で 0.953(2026-08-20)に到達し、LibreOffice(0.913・ペア差 +0.040 ± 0.005、|t| = 8.7、48 デッキ中 44 で Oxi 優位)と ONLYOFFICE(0.908)を上回りました。スライド数は 3 エンジンとも 48/48 で一致、48 デッキ全てが改善して後退ゼロ、最下位のデッキでも 0.880 です。

PPTX ブラインドセット — 初見の 48 デッキ、PowerPoint とのデッキ平均 SSIM(2026-08-20)

Oxiスライド数一致 48/48
0.953
LibreOfficeスライド数一致 48/48・v26.2.1.2
0.913
ONLYOFFICEスライド数一致 48/48・v9.3.1.8
0.908

Excel — 数式と VBA をブラウザで

.xlsx エンジンは依存グラフ型の数式エンジン(61 関数。実在の 285 ワークブックで Excel 自身のキャッシュ値と突き合わせて検証)と、ワークブックのマクロをブラウザで実行するクライアントサイド VBA ホストを備えています: Range / Worksheet / Workbook 操作、Sort、AutoFilter、Find、Copy/PasteSpecial、WorksheetFunction — 11 種のホストオブジェクトに 95 メンバ。それぞれ実物の Excel COM の挙動から導出し、82 本のスクリプト比較で検証しています。マクロによる編集は差分だけを書き戻し、元の ZIP は保持 — 無編集保存はバイト単位で同一です。

なぜこの精度が出せるのか

  • 100% クリーンルーム実装:逆アセンブルやバイナリ解析は一切行いません。仕様の根拠は公開標準(OOXML — ISO/IEC 29500 / ECMA-376)と、COM API 経由で Word の出力値を観測するブラックボックス測定の 2 つだけです。
  • デュアルフォントエンジン:Word のレイアウトは GDI の整数ピクセル丸めを前提に組まれているため、.docx では GDI の振る舞いをそのまま再現。そのしがらみがない形式には DirectWrite の浮動小数メトリクスを使います。
  • 回帰ゲート:すべての変更を全コーパスで検証。改ページの一致、要素の位置、ピクセル SSIM を毎回確認してから取り込みます。

詳細と再現スクリプト: README — Layout Accuracy · docs/layout_accuracy.md

日本語組版を、中心に

多くの Word 互換レンダラーで後回しにされてきた日本語レイアウトこそ、Oxi の実測の中心です。測定コーパス自体が、日本語レイアウトが最も難しい文書群——省庁の規程、行政の申請様式、雇用契約書——でできています。

  • 禁則処理 — JIS X 4051 に沿った行分割。行頭・行末禁則、約物の詰め、ぶら下がり組み。
  • 縦書き — 右から左に流れる縦組み。縦中横にも対応。
  • ルビ(ふりがな)割注圏点(傍点)
  • 文字グリッド(docGrid) — Word の行グリッド・字送りモデルを忠実に再現。
  • 判子 — 丸印・角印・小判型の電子印鑑生成と PAdES PDF 署名。

技術

Rust + WebAssembly、形式に依存しない中間表現、そしてサーバーゼロ。

なぜ今なのか

2026 年、フランス(DINUM 指令)、スイス(連邦事務局)、ドイツ(OpenDesk)など、欧州の公共部門は Microsoft Office 離れを本格化させています。そしてどの移行でも、最後に残るのは同じ問題です — 手元にある大量の .docx が、Word と同じ見た目で開けるかどうか。Oxi は Word 再現度を「約束」ではなく「継続的な実測」で示すことで、この問題そのものをなくすことを目指しています。

アーキテクチャ

  • 完全クライアントサイド:解析・レイアウト・描画・編集はブラウザ内の WebAssembly で実行。サーバー基盤もアップロードも不要です。
  • 形式に依存しない中間表現:Document → Page → Block (Paragraph | Table | Image) → Run。OOXML にも ODF にも寄せていないので、往復変換で劣化しません。
  • ラウンドトリップ編集:元の ZIP を保持し、変更した XML テキストノードだけをパッチ。ファイルをゼロから作り直すことはしません。
  • 同梱フォントはオープンライセンスのみ:メトリクス互換のオープンフォントを使用し、プロプライエタリフォントは同梱しません。
  • 組み込み可能:wasm-bindgen の JavaScript API(parse_documentlayout_documentedit_docx など)を任意の Web アプリから呼び出せます。

ライセンス

コアエンジンは MPL-2.0(ファイル単位コピーレフト。AGPL と違い、商用製品への組み込みも可能です)。WebAssembly / Python バインディングは MIT OR Apache-2.0。コントリビューションは DCO のみで CLA はありません。

よくある質問

無料で使えますか?

はい。オープンソース(コア MPL-2.0、バインディング MIT OR Apache-2.0)で、Web デモは登録不要・無料です。

ファイルはサーバーに送信されますか?

されません。処理はすべてブラウザ内の WebAssembly で完結し、ファイルが外部に送られることはありません。機密文書でも安心して使えます。

Word とどれくらい同じ見た目になりますか?

修正のターゲットには使わない初見文書だけの凍結ブラインドベンチマークで、Word とピクセル単位の SSIM を測定しています。英語 blind-C50(初測定 2026-08-31)で Oxi は文書平均 0.903、Word とのページ数一致は 48 文書中 48 — 測定した 8 エンジンで唯一の全一致です。ピクセルでは ONLYOFFICE がわずかに上(0.908、42/48)、LibreOffice が僅差(0.892、43/48)。日本語 blind-C50 では Oxi が 0.802 で SILURUS(0.790)と LibreOffice(0.788)を上回りますが、ページ数一致は ONLYOFFICE の方が多く(40/50 対 Oxi 35/50)、両方で勝ってはいません。エンジンの順位は言語間で入れ替わるため、ブラインドセットは言語ごとに保持しています。比較グラフと測定方法は再現度セクションをご覧ください。

対応している形式は?

まずは Word の .docx です。ページレイアウトの完全再現とラウンドトリップ編集に集中しています。「Word の .docx 描画を忠実に再現する」ことが Oxi のミッションで、対応形式を広げるのはその先です。

自社製品に組み込めますか?

組み込めます。コアはファイル単位コピーレフトの MPL-2.0、バインディングは MIT OR Apache-2.0 なので、AGPL 系と違い商用・プロプライエタリ製品にも組み込めます。

オフラインでも動きますか?

ページと WebAssembly モジュールを読み込んだあとは、文書の表示も編集もネットワークなしで動きます。