純文本輸入,就能繪製精美數學圖表:CMU繪圖工具登GitHub熱榜
魚羊 發自 凹非寺
量子位 報道 | 公衆號 QbitAI
畫數學插圖令人頭禿?
現在,CMU的研究人員們開發出了一款實用工具Penrose:
以純文本的方式輸入,根據語言描述,就能自動生成數學圖表。
集合論:
幾何:
線性代數:
光線追蹤:
都不在話下。
整個過程,不需要手動進行繁瑣調整,只需在軟件中用編程語言的方式,描述數學表達式。
並且,這些表達式不僅限於基本功能,而是可以表達任何數學領域的複雜關係。
這一研究成果,入選計算機圖形學頂會SIGGRAPH 2020。
在GitHub上,也得到了3500標星,登上熱榜。
有網友認爲:Penrose,就像是科學圖表中LaTeX。
純文本繪製數學圖表
用LaTeX編輯數學公式的快樂,誰用誰知道。
那麼Penrose具體是怎麼繪製出數學圖表的呢?
比如,要畫出這樣一個集合關係:
在軟件界面中,完成這樣的輸入就能自動生成:
如果對配色、佈局不滿意,點擊「resample」,系統會提供其他不同的選擇:
也可以自己手動在「sty」文件中進行調整:
研究人員還提到,該系統支持與基於Web的應用程序集成。並且,Penrose IDE能夠提供自動語法高亮和自動補全功能。
不過,目前Penrose尚處在初期版本,未向公衆開放。研發團隊表示,他們正在快馬加鞭,希望能儘快上線公開版本。
數學符號如何變成精美圖表?
作者之一、CMU計算機科學和機器人學助理教授Keenan Crane表示,他們打造Penrose的目的,是讓所有人都能擁有數學家一般,繪製漂亮圖表的能力。
爲了實現這一目標,Penrose圍繞兩個設計原則來實現:
通過從數學符號到視覺圖標的映射來規定圖表;
通過求解相關有約束的優化問題來合成圖表。
第一步,是用編程語言來規定數學對象及其可視化表示。
具體而言分爲三個部分:
Substance:類似於HTML,用來指定內容。
Style:類似於CSS,用於調整外觀和可視化表示。
Domain:聲明數學領域中可用的對象、關係和符號。
需要說明的是,這並不意味着用戶想要上手Penrose,必須學會三種語言。
實際上,大多數用戶只要掌握Substance語言,類似這樣:
Set A,B
intersecting(A,B)
set C := intersection(A,B)
Label A $\text$
Label B $\text$
Label C $\text$
Domain和Style就交給專業人士,要用的時候調用軟件包就行了。
第二步,使用約束性優化來合成滿足給定規範的圖。
該方法主要受到手繪圖的啓發。
3500星,登上GitHub熱榜
Penrose展現的效果,得到了網友們的點贊。
目前,Penrose的GitHub已經有3500標星,在Hacker News上也有399的熱度。
有網友認爲,想要理解數學概念,可視化是非常重要的手段,而Penrose可能會給數學教育帶來很大的幫助。
還有網友表示,希望幾何繪圖軟件Geogebra能集成這一功能。
不過,也有網友指出,簡單的示例說明了系統的思想,但還是希望看到Penrose實現的更爲複雜的數學概念可視化,以證明其確實可以表達數學領域的複雜關係。