Oxi ロゴ Oxi

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

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

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

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

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

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

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

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

英語は最初から一番厳しい測り方をしています — 公開 docx-corpus から、修正のターゲットには一切使わない凍結ブラインドベンチ 50 文書。現行セットは blind-I50(種別ごとに未使用の次の SHA-256 順位、2026-10-25 に測定前凍結、規則は pipeline_data/FROZEN_BLIND_I.md)で、これがその唯一の測定です。比較エンジンはすべて測定日の最新公開版です。英語で Oxi はピクセル 2 位(0.903) — ONLYOFFICE(0.909)に 0.006 差で次ぎ、WordCraft(0.885)と LibreOffice(0.864)を上回ります。Word とのページ数一致は Oxi が最多の 47/50(ONLYOFFICE 42/50)。ただし文書ごとに見ると、ONLYOFFICE は 50 文書中 37、WordCraft は 34 文書で Oxi より Word に近く、Oxi が LibreOffice に勝つのは 30 文書です — Oxi の平均が高いのは悪い文書が少ないからで、典型的な文書で勝っているからではありません。増減したページを 0 点で数える penalized 平均は ONLYOFFICE 0.888、Oxi 0.883、WordCraft 0.857、LibreOffice 0.828、Polaris Office 0.813、SILURUS 0.806、GenOffice 0.747、ibisOffice 0.706、eigenpal 0.704、BetterOffice 0.636、OfficeCLI 0.443。真値は Microsoft Word(Microsoft 365 16.0.20430.20182)、150 DPI、文書ごとに新しい Word プロセスで出力。Polaris Office はコマンドラインが無いためウィンドウ操作で書き出しており、2 回試しても書き出せなかった英語 6 文書は「描画なし」として数えています。

Word が保存した改ページ印について。 Word は自分の描画で頁が始まった位置に <w:lastRenderedPageBreak/> を書き込みます。Oxi のパーサーはこれを読めますが、他のエンジンは読みません。このヒントの影響を除くため、上の blind-I の数字を、印をすべて取り除いたコピーで同じ凍結エンジンのまま測り直しました(2026-10-28)。英語 0.903 / 0.883 / 47/50、日本語 0.905 / 0.899 / 47/50 で、公開値と同じでした。ベンチマークは今後、既定で印を見せずに測ります(OXI_IGNORE_LRPB=1)。

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

ONLYOFFICEページ数一致 42/50 · v10.0.0 · 50 文書中 49 を描画
0.909
Oxiページ数一致 47/50
0.903
WordCraftページ数一致 41/50 · v0.10.0
0.885
LibreOfficeページ数一致 39/50 · v26.8.1.1
0.864
SILURUSページ数一致 41/50 · v0.89.4
0.842
Polaris Officeページ数一致 35/50 · v11.115 · 50 文書中 44 を描画
0.830
GenOfficeページ数一致 35/50 · v28cee5ca
0.815
ibisOfficeページ数一致 33/50 · v0.8.4
0.783
OfficeCLIページ数一致 14/50 · v1.0.158
0.770
BetterOfficeページ数一致 26/50 · v0.4.3
0.767
eigenpalページ数一致 33/50 · v1.9.0
0.756
0.4 0.4 0.6 0.6 0.8 0.8 1.0 1.0 Oxi 優位 ↑ LibreOffice 優位 ↓ legal: Oxi 0.979 / LibreOffice 0.987 legal: Oxi 0.967 / LibreOffice 0.968 forms: Oxi 0.938 / LibreOffice 0.979 forms: Oxi 0.747 / LibreOffice 0.793 forms: Oxi 0.984 / LibreOffice 0.881 forms: Oxi 0.976 / LibreOffice 0.973 forms: Oxi 0.765 / LibreOffice 0.793 reports: Oxi 0.959 / LibreOffice 0.934 legal: Oxi 0.980 / LibreOffice 0.849 reports: Oxi 0.920 / LibreOffice 0.765 reports: Oxi 0.978 / LibreOffice 0.958 reports: Oxi 0.960 / LibreOffice 0.922 policies: Oxi 0.955 / LibreOffice 0.946 reports: Oxi 0.787 / LibreOffice 0.956 policies: Oxi 0.985 / LibreOffice 0.853 legal: Oxi 0.972 / LibreOffice 0.803 policies: Oxi 0.914 / LibreOffice 0.859 policies: Oxi 0.945 / LibreOffice 0.926 educational: Oxi 0.761 / LibreOffice 0.730 educational: Oxi 0.901 / LibreOffice 0.880 educational: Oxi 0.983 / LibreOffice 0.771 educational: Oxi 0.970 / LibreOffice 0.969 correspondence: Oxi 0.963 / LibreOffice 0.968 correspondence: Oxi 0.915 / LibreOffice 0.874 policies: Oxi 0.777 / LibreOffice 0.879 correspondence: Oxi 0.986 / LibreOffice 0.994 correspondence: Oxi 0.978 / LibreOffice 0.922 correspondence: Oxi 0.542 / LibreOffice 0.643 educational: Oxi 0.858 / LibreOffice 0.761 technical: Oxi 0.736 / LibreOffice 0.882 technical: Oxi 0.948 / LibreOffice 0.869 technical: Oxi 0.937 / LibreOffice 0.938 administrative: Oxi 0.925 / LibreOffice 0.779 administrative: Oxi 0.835 / LibreOffice 0.841 administrative: Oxi 0.982 / LibreOffice 0.926 administrative: Oxi 0.989 / LibreOffice 0.989 legal: Oxi 0.973 / LibreOffice 0.777 technical: Oxi 0.840 / LibreOffice 0.671 creative: Oxi 0.986 / LibreOffice 0.994 administrative: Oxi 0.770 / LibreOffice 0.687 creative: Oxi 0.875 / LibreOffice 0.772 creative: Oxi 0.828 / LibreOffice 0.836 creative: Oxi 0.954 / LibreOffice 0.984 creative: Oxi 0.963 / LibreOffice 0.986 reference: Oxi 0.844 / LibreOffice 0.522 reference: Oxi 0.755 / LibreOffice 0.924 reference: Oxi 0.870 / LibreOffice 0.822 reference: Oxi 0.878 / LibreOffice 0.626 reference: Oxi 0.967 / LibreOffice 0.859 technical: Oxi 0.938 / LibreOffice 0.976 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.979 / ONLYOFFICE 0.982 legal: Oxi 0.967 / ONLYOFFICE 0.989 forms: Oxi 0.938 / ONLYOFFICE 0.927 forms: Oxi 0.747 / ONLYOFFICE 0.820 forms: Oxi 0.984 / ONLYOFFICE 0.992 forms: Oxi 0.976 / ONLYOFFICE 0.989 forms: Oxi 0.765 / ONLYOFFICE 0.790 reports: Oxi 0.959 / ONLYOFFICE 0.989 legal: Oxi 0.980 / ONLYOFFICE 0.850 reports: Oxi 0.920 / ONLYOFFICE 0.983 reports: Oxi 0.978 / ONLYOFFICE 0.996 reports: Oxi 0.960 / ONLYOFFICE 0.961 reports: Oxi 0.787 / ONLYOFFICE 0.945 policies: Oxi 0.985 / ONLYOFFICE 0.831 legal: Oxi 0.972 / ONLYOFFICE 0.803 policies: Oxi 0.914 / ONLYOFFICE 0.983 policies: Oxi 0.945 / ONLYOFFICE 0.973 educational: Oxi 0.761 / ONLYOFFICE 0.778 educational: Oxi 0.901 / ONLYOFFICE 0.967 educational: Oxi 0.983 / ONLYOFFICE 0.600 educational: Oxi 0.970 / ONLYOFFICE 0.982 correspondence: Oxi 0.963 / ONLYOFFICE 0.835 correspondence: Oxi 0.915 / ONLYOFFICE 0.983 policies: Oxi 0.777 / ONLYOFFICE 0.854 correspondence: Oxi 0.986 / ONLYOFFICE 0.994 correspondence: Oxi 0.978 / ONLYOFFICE 0.984 correspondence: Oxi 0.542 / ONLYOFFICE 0.924 educational: Oxi 0.858 / ONLYOFFICE 0.800 technical: Oxi 0.736 / ONLYOFFICE 0.799 technical: Oxi 0.948 / ONLYOFFICE 0.945 technical: Oxi 0.937 / ONLYOFFICE 0.943 administrative: Oxi 0.925 / ONLYOFFICE 0.936 administrative: Oxi 0.835 / ONLYOFFICE 0.987 administrative: Oxi 0.982 / ONLYOFFICE 0.970 administrative: Oxi 0.989 / ONLYOFFICE 0.989 legal: Oxi 0.973 / ONLYOFFICE 0.779 technical: Oxi 0.840 / ONLYOFFICE 0.653 creative: Oxi 0.986 / ONLYOFFICE 0.997 administrative: Oxi 0.770 / ONLYOFFICE 0.784 creative: Oxi 0.875 / ONLYOFFICE 0.975 creative: Oxi 0.828 / ONLYOFFICE 0.829 creative: Oxi 0.954 / ONLYOFFICE 0.980 creative: Oxi 0.963 / ONLYOFFICE 0.992 reference: Oxi 0.844 / ONLYOFFICE 0.870 reference: Oxi 0.755 / ONLYOFFICE 0.948 reference: Oxi 0.870 / ONLYOFFICE 0.752 reference: Oxi 0.878 / ONLYOFFICE 0.974 reference: Oxi 0.967 / ONLYOFFICE 0.972 technical: Oxi 0.938 / ONLYOFFICE 0.974 vs ONLYOFFICE — Oxi 優位 12/49 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.979 / SILURUS 0.965 legal: Oxi 0.967 / SILURUS 0.920 forms: Oxi 0.938 / SILURUS 0.713 forms: Oxi 0.747 / SILURUS 0.782 forms: Oxi 0.984 / SILURUS 0.971 forms: Oxi 0.976 / SILURUS 0.828 forms: Oxi 0.765 / SILURUS 0.771 reports: Oxi 0.959 / SILURUS 0.941 legal: Oxi 0.980 / SILURUS 0.847 reports: Oxi 0.920 / SILURUS 0.788 reports: Oxi 0.978 / SILURUS 0.927 reports: Oxi 0.960 / SILURUS 0.886 policies: Oxi 0.955 / SILURUS 0.969 reports: Oxi 0.787 / SILURUS 0.824 policies: Oxi 0.985 / SILURUS 0.828 legal: Oxi 0.972 / SILURUS 0.798 policies: Oxi 0.914 / SILURUS 0.882 policies: Oxi 0.945 / SILURUS 0.886 educational: Oxi 0.761 / SILURUS 0.751 educational: Oxi 0.901 / SILURUS 0.898 educational: Oxi 0.983 / SILURUS 0.605 educational: Oxi 0.970 / SILURUS 0.836 correspondence: Oxi 0.963 / SILURUS 0.830 correspondence: Oxi 0.915 / SILURUS 0.901 policies: Oxi 0.777 / SILURUS 0.873 correspondence: Oxi 0.986 / SILURUS 0.975 correspondence: Oxi 0.978 / SILURUS 0.912 correspondence: Oxi 0.542 / SILURUS 0.537 educational: Oxi 0.858 / SILURUS 0.696 technical: Oxi 0.736 / SILURUS 0.752 technical: Oxi 0.948 / SILURUS 0.965 technical: Oxi 0.937 / SILURUS 0.919 administrative: Oxi 0.925 / SILURUS 0.851 administrative: Oxi 0.835 / SILURUS 0.833 administrative: Oxi 0.982 / SILURUS 0.837 administrative: Oxi 0.989 / SILURUS 0.896 legal: Oxi 0.973 / SILURUS 0.769 technical: Oxi 0.840 / SILURUS 0.643 creative: Oxi 0.986 / SILURUS 0.980 administrative: Oxi 0.770 / SILURUS 0.746 creative: Oxi 0.875 / SILURUS 0.972 creative: Oxi 0.828 / SILURUS 0.831 creative: Oxi 0.954 / SILURUS 0.912 creative: Oxi 0.963 / SILURUS 0.961 reference: Oxi 0.844 / SILURUS 0.866 reference: Oxi 0.755 / SILURUS 0.868 reference: Oxi 0.870 / SILURUS 0.845 reference: Oxi 0.878 / SILURUS 0.753 reference: Oxi 0.967 / SILURUS 0.686 technical: Oxi 0.938 / SILURUS 0.871 vs SILURUS — Oxi 優位 39/50 SILURUS の SSIM(文書ごと) Oxi の SSIM
0.4 0.4 0.6 0.6 0.8 0.8 1.0 1.0 Oxi 優位 ↑ eigenpal 優位 ↓ legal: Oxi 0.979 / eigenpal 0.834 legal: Oxi 0.967 / eigenpal 0.767 forms: Oxi 0.938 / eigenpal 0.686 forms: Oxi 0.747 / eigenpal 0.734 forms: Oxi 0.984 / eigenpal 0.867 forms: Oxi 0.976 / eigenpal 0.822 forms: Oxi 0.765 / eigenpal 0.730 reports: Oxi 0.959 / eigenpal 0.755 legal: Oxi 0.980 / eigenpal 0.839 reports: Oxi 0.920 / eigenpal 0.752 reports: Oxi 0.978 / eigenpal 0.888 reports: Oxi 0.960 / eigenpal 0.618 policies: Oxi 0.955 / eigenpal 0.867 reports: Oxi 0.787 / eigenpal 0.676 policies: Oxi 0.985 / eigenpal 0.840 legal: Oxi 0.972 / eigenpal 0.788 policies: Oxi 0.914 / eigenpal 0.800 policies: Oxi 0.945 / eigenpal 0.772 educational: Oxi 0.761 / eigenpal 0.650 educational: Oxi 0.901 / eigenpal 0.881 educational: Oxi 0.983 / eigenpal 0.604 educational: Oxi 0.970 / eigenpal 0.597 correspondence: Oxi 0.963 / eigenpal 0.738 correspondence: Oxi 0.915 / eigenpal 0.783 policies: Oxi 0.777 / eigenpal 0.840 correspondence: Oxi 0.986 / eigenpal 0.829 correspondence: Oxi 0.978 / eigenpal 0.806 correspondence: Oxi 0.542 / eigenpal 0.557 educational: Oxi 0.858 / eigenpal 0.683 technical: Oxi 0.736 / eigenpal 0.600 technical: Oxi 0.948 / eigenpal 0.703 technical: Oxi 0.937 / eigenpal 0.858 administrative: Oxi 0.925 / eigenpal 0.732 administrative: Oxi 0.835 / eigenpal 0.832 administrative: Oxi 0.982 / eigenpal 0.804 administrative: Oxi 0.989 / eigenpal 0.960 legal: Oxi 0.973 / eigenpal 0.759 technical: Oxi 0.840 / eigenpal 0.635 creative: Oxi 0.986 / eigenpal 0.827 administrative: Oxi 0.770 / eigenpal 0.611 creative: Oxi 0.875 / eigenpal 0.863 creative: Oxi 0.828 / eigenpal 0.767 creative: Oxi 0.954 / eigenpal 0.626 creative: Oxi 0.963 / eigenpal 0.911 reference: Oxi 0.844 / eigenpal 0.766 reference: Oxi 0.755 / eigenpal 0.658 reference: Oxi 0.870 / eigenpal 0.802 reference: Oxi 0.878 / eigenpal 0.592 reference: Oxi 0.967 / eigenpal 0.641 technical: Oxi 0.938 / eigenpal 0.851 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.979 / GenOffice 0.923 legal: Oxi 0.967 / GenOffice 0.885 forms: Oxi 0.938 / GenOffice 0.716 forms: Oxi 0.747 / GenOffice 0.723 forms: Oxi 0.984 / GenOffice 0.869 forms: Oxi 0.976 / GenOffice 0.926 forms: Oxi 0.765 / GenOffice 0.781 reports: Oxi 0.959 / GenOffice 0.890 legal: Oxi 0.980 / GenOffice 0.892 reports: Oxi 0.920 / GenOffice 0.797 reports: Oxi 0.978 / GenOffice 0.944 reports: Oxi 0.960 / GenOffice 0.722 policies: Oxi 0.955 / GenOffice 0.859 reports: Oxi 0.787 / GenOffice 0.742 policies: Oxi 0.985 / GenOffice 0.819 legal: Oxi 0.972 / GenOffice 0.793 policies: Oxi 0.914 / GenOffice 0.870 policies: Oxi 0.945 / GenOffice 0.776 educational: Oxi 0.761 / GenOffice 0.618 educational: Oxi 0.901 / GenOffice 0.912 educational: Oxi 0.983 / GenOffice 0.891 educational: Oxi 0.970 / GenOffice 0.834 correspondence: Oxi 0.963 / GenOffice 0.738 correspondence: Oxi 0.915 / GenOffice 0.836 policies: Oxi 0.777 / GenOffice 0.818 correspondence: Oxi 0.986 / GenOffice 0.895 correspondence: Oxi 0.978 / GenOffice 0.909 correspondence: Oxi 0.542 / GenOffice 0.602 educational: Oxi 0.858 / GenOffice 0.746 technical: Oxi 0.736 / GenOffice 0.651 technical: Oxi 0.948 / GenOffice 0.771 technical: Oxi 0.937 / GenOffice 0.937 administrative: Oxi 0.925 / GenOffice 0.851 administrative: Oxi 0.835 / GenOffice 0.837 administrative: Oxi 0.982 / GenOffice 0.815 administrative: Oxi 0.989 / GenOffice 0.903 legal: Oxi 0.973 / GenOffice 0.786 technical: Oxi 0.840 / GenOffice 0.659 creative: Oxi 0.986 / GenOffice 0.948 administrative: Oxi 0.770 / GenOffice 0.824 creative: Oxi 0.875 / GenOffice 0.921 creative: Oxi 0.828 / GenOffice 0.828 creative: Oxi 0.954 / GenOffice 0.645 creative: Oxi 0.963 / GenOffice 0.941 reference: Oxi 0.844 / GenOffice 0.768 reference: Oxi 0.755 / GenOffice 0.773 reference: Oxi 0.870 / GenOffice 0.822 reference: Oxi 0.878 / GenOffice 0.668 reference: Oxi 0.967 / GenOffice 0.810 technical: Oxi 0.938 / GenOffice 0.860 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、WordCraft と ibisOffice(どちらも自前のコマンドラインから PDF を書き出す Rust 製オフィススイート)は 2026-10-25 に比較に加わりました。各バーはそのバーに書かれた最新版での 2026-10-25 測定値で、いずれも同じ凍結グラウンドトゥルースに対して測定しています。下: 点 1 つが文書 1 件で、縦軸が Oxi。破線の対角線より上にある点が「Oxi のほうが Word に近い」文書です。ブラインドセットは「測定はするが修正対象にはしない」文書群なので、初見の実力がそのまま出ます — 負けている数字もそのまま公開しています。

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

日本語も同じ厳しさで測ります。現行セットは jaBlind-I50(2026-10-25 に測定前凍結。公開マニフェストの日本語 technical は枯渇しているため、その 5 枠は事前に宣言した規則で他種別の次の順位から補充 — 5 本とも forms)。Oxi はピクセルで首位(0.905)で、2 位の Polaris Office(0.848、ページ数一致は Oxi と 1 文書差)に 0.057、LibreOffice(0.831)に 0.074 の差。文書ごとでも Polaris Office に 40、LibreOffice に 43、WordCraft に 43、ONLYOFFICE に 48 文書で勝ち、ページ数一致も最多です(47/50)。エンジンの順位は言語で入れ替わります — ONLYOFFICE は英語 1 位・日本語 9 位 — これが言語ごとにブラインドを持つ理由です。過去の日本語セットは当時のエンジンで 0.842 / 0.802 / 0.802 / 0.857。本セットが初めて 0.90 を超えました — ただし 1 サンプルなので、例の ±0.02 がそのまま付きます。

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

Oxiページ数一致 47/50
0.905
Polaris Officeページ数一致 46/50 · v11.115
0.848
LibreOfficeページ数一致 41/50 · v26.8.1.1
0.831
WordCraftページ数一致 37/50 · v0.10.0
0.827
GenOfficeページ数一致 34/50 · v28cee5ca · 50 文書中 49 を描画
0.825
SILURUSページ数一致 31/50 · v0.89.4 · 50 文書中 48 を描画
0.821
ibisOfficeページ数一致 41/50 · v0.8.4
0.819
OfficeCLIページ数一致 32/50 · v1.0.158
0.810
ONLYOFFICEページ数一致 38/50 · v10.0.0
0.790
BetterOfficeページ数一致 34/50 · v0.4.3
0.785
eigenpalページ数一致 36/50 · v1.9.0
0.768
0.4 0.4 0.6 0.6 0.8 0.8 1.0 1.0 Oxi 優位 ↑ LibreOffice 優位 ↓ legal: Oxi 0.965 / LibreOffice 0.958 legal: Oxi 0.992 / LibreOffice 0.987 legal: Oxi 0.987 / LibreOffice 0.887 legal: Oxi 0.973 / LibreOffice 0.915 forms: Oxi 0.936 / LibreOffice 0.909 forms: Oxi 0.926 / LibreOffice 0.751 forms: Oxi 0.915 / LibreOffice 0.811 legal: Oxi 0.903 / LibreOffice 0.914 forms: Oxi 0.871 / LibreOffice 0.814 forms: Oxi 0.983 / LibreOffice 0.927 forms: Oxi 0.926 / LibreOffice 0.813 forms: Oxi 0.824 / LibreOffice 0.813 forms: Oxi 0.981 / LibreOffice 0.962 forms: Oxi 0.955 / LibreOffice 0.836 reports: Oxi 0.800 / LibreOffice 0.747 forms: Oxi 0.877 / LibreOffice 0.823 reports: Oxi 0.885 / LibreOffice 0.713 reports: Oxi 0.712 / LibreOffice 0.600 policies: Oxi 0.952 / LibreOffice 0.985 policies: Oxi 0.972 / LibreOffice 0.825 policies: Oxi 0.936 / LibreOffice 0.669 policies: Oxi 0.940 / LibreOffice 0.882 educational: Oxi 0.982 / LibreOffice 0.928 reports: Oxi 0.946 / LibreOffice 0.939 educational: Oxi 0.866 / LibreOffice 0.717 educational: Oxi 0.927 / LibreOffice 0.841 educational: Oxi 0.908 / LibreOffice 0.821 correspondence: Oxi 0.951 / LibreOffice 0.806 correspondence: Oxi 0.964 / LibreOffice 0.805 correspondence: Oxi 0.718 / LibreOffice 0.721 correspondence: Oxi 0.927 / LibreOffice 0.775 correspondence: Oxi 0.835 / LibreOffice 0.675 administrative: Oxi 0.950 / LibreOffice 0.917 administrative: Oxi 0.985 / LibreOffice 0.982 administrative: Oxi 0.892 / LibreOffice 0.720 administrative: Oxi 0.917 / LibreOffice 0.952 reports: Oxi 0.814 / LibreOffice 0.662 administrative: Oxi 0.915 / LibreOffice 0.826 creative: Oxi 0.967 / LibreOffice 0.882 creative: Oxi 0.995 / LibreOffice 0.969 creative: Oxi 0.670 / LibreOffice 0.652 creative: Oxi 0.941 / LibreOffice 0.771 reference: Oxi 0.837 / LibreOffice 0.777 reference: Oxi 0.979 / LibreOffice 0.921 educational: Oxi 0.803 / LibreOffice 0.835 reference: Oxi 0.983 / LibreOffice 0.987 creative: Oxi 0.789 / LibreOffice 0.813 reference: Oxi 0.955 / LibreOffice 0.908 reference: Oxi 0.732 / LibreOffice 0.683 policies: Oxi 0.896 / LibreOffice 0.718 vs LibreOffice — Oxi 優位 43/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.965 / ONLYOFFICE 0.881 legal: Oxi 0.992 / ONLYOFFICE 0.936 legal: Oxi 0.987 / ONLYOFFICE 0.898 legal: Oxi 0.973 / ONLYOFFICE 0.910 forms: Oxi 0.936 / ONLYOFFICE 0.961 forms: Oxi 0.926 / ONLYOFFICE 0.659 forms: Oxi 0.915 / ONLYOFFICE 0.808 legal: Oxi 0.903 / ONLYOFFICE 0.828 forms: Oxi 0.871 / ONLYOFFICE 0.796 forms: Oxi 0.983 / ONLYOFFICE 0.921 forms: Oxi 0.926 / ONLYOFFICE 0.798 forms: Oxi 0.824 / ONLYOFFICE 0.765 forms: Oxi 0.981 / ONLYOFFICE 0.877 forms: Oxi 0.955 / ONLYOFFICE 0.824 reports: Oxi 0.800 / ONLYOFFICE 0.704 forms: Oxi 0.877 / ONLYOFFICE 0.823 reports: Oxi 0.885 / ONLYOFFICE 0.724 reports: Oxi 0.712 / ONLYOFFICE 0.607 policies: Oxi 0.952 / ONLYOFFICE 0.934 policies: Oxi 0.972 / ONLYOFFICE 0.582 policies: Oxi 0.936 / ONLYOFFICE 0.606 policies: Oxi 0.940 / ONLYOFFICE 0.808 educational: Oxi 0.982 / ONLYOFFICE 0.925 reports: Oxi 0.946 / ONLYOFFICE 0.707 educational: Oxi 0.866 / ONLYOFFICE 0.612 educational: Oxi 0.927 / ONLYOFFICE 0.839 educational: Oxi 0.908 / ONLYOFFICE 0.821 correspondence: Oxi 0.951 / ONLYOFFICE 0.791 correspondence: Oxi 0.964 / ONLYOFFICE 0.818 correspondence: Oxi 0.718 / ONLYOFFICE 0.705 correspondence: Oxi 0.927 / ONLYOFFICE 0.820 correspondence: Oxi 0.835 / ONLYOFFICE 0.694 administrative: Oxi 0.950 / ONLYOFFICE 0.908 administrative: Oxi 0.985 / ONLYOFFICE 0.954 administrative: Oxi 0.892 / ONLYOFFICE 0.684 administrative: Oxi 0.917 / ONLYOFFICE 0.811 reports: Oxi 0.814 / ONLYOFFICE 0.569 administrative: Oxi 0.915 / ONLYOFFICE 0.718 creative: Oxi 0.967 / ONLYOFFICE 0.864 creative: Oxi 0.995 / ONLYOFFICE 0.972 creative: Oxi 0.670 / ONLYOFFICE 0.629 creative: Oxi 0.941 / ONLYOFFICE 0.779 reference: Oxi 0.837 / ONLYOFFICE 0.760 reference: Oxi 0.979 / ONLYOFFICE 0.825 educational: Oxi 0.803 / ONLYOFFICE 0.843 reference: Oxi 0.983 / ONLYOFFICE 0.895 creative: Oxi 0.789 / ONLYOFFICE 0.685 reference: Oxi 0.955 / ONLYOFFICE 0.887 reference: Oxi 0.732 / ONLYOFFICE 0.640 policies: Oxi 0.896 / ONLYOFFICE 0.688 vs ONLYOFFICE — Oxi 優位 48/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.965 / SILURUS 0.945 legal: Oxi 0.992 / SILURUS 0.941 legal: Oxi 0.987 / SILURUS 0.902 legal: Oxi 0.973 / SILURUS 0.968 forms: Oxi 0.936 / SILURUS 0.906 forms: Oxi 0.926 / SILURUS 0.700 forms: Oxi 0.915 / SILURUS 0.802 legal: Oxi 0.903 / SILURUS 0.907 forms: Oxi 0.871 / SILURUS 0.788 forms: Oxi 0.983 / SILURUS 0.970 forms: Oxi 0.926 / SILURUS 0.823 forms: Oxi 0.824 / SILURUS 0.784 forms: Oxi 0.981 / SILURUS 0.874 forms: Oxi 0.955 / SILURUS 0.882 reports: Oxi 0.800 / SILURUS 0.719 forms: Oxi 0.877 / SILURUS 0.822 reports: Oxi 0.885 / SILURUS 0.715 reports: Oxi 0.712 / SILURUS 0.631 policies: Oxi 0.952 / SILURUS 0.951 policies: Oxi 0.972 / SILURUS 0.650 policies: Oxi 0.936 / SILURUS 0.684 policies: Oxi 0.940 / SILURUS 0.851 reports: Oxi 0.946 / SILURUS 0.792 educational: Oxi 0.866 / SILURUS 0.688 educational: Oxi 0.927 / SILURUS 0.840 educational: Oxi 0.908 / SILURUS 0.822 correspondence: Oxi 0.951 / SILURUS 0.765 correspondence: Oxi 0.964 / SILURUS 0.802 correspondence: Oxi 0.718 / SILURUS 0.718 correspondence: Oxi 0.927 / SILURUS 0.761 correspondence: Oxi 0.835 / SILURUS 0.721 administrative: Oxi 0.950 / SILURUS 0.959 administrative: Oxi 0.985 / SILURUS 0.977 administrative: Oxi 0.892 / SILURUS 0.724 administrative: Oxi 0.917 / SILURUS 0.954 reports: Oxi 0.814 / SILURUS 0.670 administrative: Oxi 0.915 / SILURUS 0.781 creative: Oxi 0.967 / SILURUS 0.921 creative: Oxi 0.995 / SILURUS 0.963 creative: Oxi 0.670 / SILURUS 0.655 creative: Oxi 0.941 / SILURUS 0.833 reference: Oxi 0.837 / SILURUS 0.760 reference: Oxi 0.979 / SILURUS 0.962 educational: Oxi 0.803 / SILURUS 0.769 reference: Oxi 0.983 / SILURUS 0.962 creative: Oxi 0.789 / SILURUS 0.730 reference: Oxi 0.955 / SILURUS 0.931 reference: Oxi 0.732 / SILURUS 0.724 vs SILURUS — Oxi 優位 44/48 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.965 / eigenpal 0.871 legal: Oxi 0.992 / eigenpal 0.933 legal: Oxi 0.987 / eigenpal 0.893 legal: Oxi 0.973 / eigenpal 0.912 forms: Oxi 0.936 / eigenpal 0.874 forms: Oxi 0.926 / eigenpal 0.665 forms: Oxi 0.915 / eigenpal 0.823 legal: Oxi 0.903 / eigenpal 0.764 forms: Oxi 0.871 / eigenpal 0.798 forms: Oxi 0.983 / eigenpal 0.918 forms: Oxi 0.926 / eigenpal 0.792 forms: Oxi 0.824 / eigenpal 0.751 forms: Oxi 0.981 / eigenpal 0.874 forms: Oxi 0.955 / eigenpal 0.808 reports: Oxi 0.800 / eigenpal 0.402 forms: Oxi 0.877 / eigenpal 0.786 reports: Oxi 0.885 / eigenpal 0.708 reports: Oxi 0.712 / eigenpal 0.649 policies: Oxi 0.952 / eigenpal 0.903 policies: Oxi 0.972 / eigenpal 0.596 policies: Oxi 0.936 / eigenpal 0.587 policies: Oxi 0.940 / eigenpal 0.791 educational: Oxi 0.982 / eigenpal 0.925 reports: Oxi 0.946 / eigenpal 0.709 educational: Oxi 0.866 / eigenpal 0.603 educational: Oxi 0.927 / eigenpal 0.834 educational: Oxi 0.908 / eigenpal 0.805 correspondence: Oxi 0.951 / eigenpal 0.755 correspondence: Oxi 0.964 / eigenpal 0.814 correspondence: Oxi 0.718 / eigenpal 0.704 correspondence: Oxi 0.927 / eigenpal 0.788 correspondence: Oxi 0.835 / eigenpal 0.658 administrative: Oxi 0.950 / eigenpal 0.904 administrative: Oxi 0.985 / eigenpal 0.952 administrative: Oxi 0.892 / eigenpal 0.681 administrative: Oxi 0.917 / eigenpal 0.821 reports: Oxi 0.814 / eigenpal 0.606 administrative: Oxi 0.915 / eigenpal 0.705 creative: Oxi 0.967 / eigenpal 0.859 creative: Oxi 0.995 / eigenpal 0.951 creative: Oxi 0.670 / eigenpal 0.579 creative: Oxi 0.941 / eigenpal 0.687 reference: Oxi 0.837 / eigenpal 0.744 reference: Oxi 0.979 / eigenpal 0.813 educational: Oxi 0.803 / eigenpal 0.759 reference: Oxi 0.983 / eigenpal 0.883 creative: Oxi 0.789 / eigenpal 0.677 reference: Oxi 0.955 / eigenpal 0.869 reference: Oxi 0.732 / eigenpal 0.574 policies: Oxi 0.896 / eigenpal 0.657 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.965 / GenOffice 0.959 legal: Oxi 0.992 / GenOffice 0.968 legal: Oxi 0.987 / GenOffice 0.898 legal: Oxi 0.973 / GenOffice 0.952 forms: Oxi 0.936 / GenOffice 0.888 forms: Oxi 0.926 / GenOffice 0.750 forms: Oxi 0.915 / GenOffice 0.797 legal: Oxi 0.903 / GenOffice 0.837 forms: Oxi 0.871 / GenOffice 0.795 forms: Oxi 0.983 / GenOffice 0.966 forms: Oxi 0.926 / GenOffice 0.852 forms: Oxi 0.824 / GenOffice 0.739 forms: Oxi 0.981 / GenOffice 0.934 forms: Oxi 0.955 / GenOffice 0.884 reports: Oxi 0.800 / GenOffice 0.393 forms: Oxi 0.877 / GenOffice 0.815 reports: Oxi 0.885 / GenOffice 0.743 reports: Oxi 0.712 / GenOffice 0.594 policies: Oxi 0.952 / GenOffice 0.970 policies: Oxi 0.972 / GenOffice 0.633 policies: Oxi 0.936 / GenOffice 0.732 policies: Oxi 0.940 / GenOffice 0.906 educational: Oxi 0.982 / GenOffice 0.945 reports: Oxi 0.946 / GenOffice 0.787 educational: Oxi 0.866 / GenOffice 0.680 educational: Oxi 0.927 / GenOffice 0.847 educational: Oxi 0.908 / GenOffice 0.833 correspondence: Oxi 0.951 / GenOffice 0.788 correspondence: Oxi 0.964 / GenOffice 0.821 correspondence: Oxi 0.718 / GenOffice 0.819 correspondence: Oxi 0.927 / GenOffice 0.775 correspondence: Oxi 0.835 / GenOffice 0.707 administrative: Oxi 0.950 / GenOffice 0.954 administrative: Oxi 0.985 / GenOffice 0.962 administrative: Oxi 0.892 / GenOffice 0.747 administrative: Oxi 0.917 / GenOffice 0.857 administrative: Oxi 0.915 / GenOffice 0.834 creative: Oxi 0.967 / GenOffice 0.928 creative: Oxi 0.995 / GenOffice 0.969 creative: Oxi 0.670 / GenOffice 0.646 creative: Oxi 0.941 / GenOffice 0.857 reference: Oxi 0.837 / GenOffice 0.782 reference: Oxi 0.979 / GenOffice 0.960 educational: Oxi 0.803 / GenOffice 0.780 reference: Oxi 0.983 / GenOffice 0.955 creative: Oxi 0.789 / GenOffice 0.813 reference: Oxi 0.955 / GenOffice 0.937 reference: Oxi 0.732 / GenOffice 0.693 policies: Oxi 0.896 / GenOffice 0.740 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 エンジンは依存グラフ型の数式エンジン(215 関数。実在の 285 ワークブックで Excel 自身のキャッシュ値と突き合わせて検証)と、ワークブックのマクロをブラウザで実行するクライアントサイド VBA ホストを備えています: Range / Worksheet / Workbook 操作、Sort、AutoFilter、Find、Copy/PasteSpecial、WorksheetFunction — 11 種のホストオブジェクトに 95 メンバ。それぞれ実物の Excel COM の挙動から導出し、82 本のスクリプト比較で検証しています。マクロによる編集は差分だけを書き戻し、元の ZIP は保持 — 無編集保存はバイト単位で同一です。

技術記事: VBA のオブジェクトの寿命を Rust の Drop で再現する — Excel とまったく同じタイミングで Class_Terminate を実行する仕組み。

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

  • 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_document、layout_document、edit_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-I50(2026-10-25 凍結・測定、比較エンジンはすべて最新版)で Oxi は文書平均 0.903、Word とのページ数一致は 50 文書中 47 で最多。ピクセルでは ONLYOFFICE がわずかに上(0.909、42/50)、LibreOffice が下(0.864、39/50)。日本語 blind-I50 では Oxi が 0.905 で Polaris Office(0.848)と LibreOffice(0.831)を上回り、ページ数一致も最多(47/50)です。エンジンの順位は言語によって入れ替わるため、言語ごとにブラインドセットを持っています。 比較チャートと方法は精度の節を参照。

対応している形式は?

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

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

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

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

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