Makoto Sato

203 papers A* 11A 2B 18C 14Misc 8Journal 42Unranked 106
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Makoto Sato
2026 J jnl
CoRR
Makoto Sato, Yusuke Iwasawa, Yujin Tang, So Kuroki
2025 J jnl
PLoS Comput. Biol.
José A. Carrillo, Hideki Murakawa, Makoto Sato, Miaoxing Wang
2025 conf
VR Workshops
Wanhee Cho, Makoto Kobayashi, Hiroyuki Kambara, Hirokazu Tanaka, Takahiro Kagawa, Makoto Sato, Hyeonseok Kim, Makoto Miyakoshi, Scott Makeig, John R. Iversen, Natsue Yoshimura
2025 J jnl
CoRR
Makoto Sato
2025 J jnl
CoRR
Makoto Sato
2025 J jnl
CoRR
Makoto Sato
2023 conf
ICICT
Makoto Sato, Tomohiro Takagi
2021 conf
HCI (41)
Takahiro Ooshima, Ryuichi Osaki, Shimpei Matsukiyo, Makoto Sato, Takehiko Yamaguchi, Tetsuya Harada
2021 conf
HCI (41)
Yoshiki Takahashi, Ryosuke Futatsumori, Makoto Sato, Takehiko Yamaguchi, Tetsuya Harada
2021 conf
HCI (41)
Kaede Nohara, Seiya Sekiwa, Makoto Sato, Takehiko Yamaguchi, Tetsuya Harada
2021 J jnl
npj Digit. Medicine
Ryo Yokomizo, Akari Nakamura, Makoto Sato, Risa Nasu, Maaya Hine, Kevin Y. Urayama, Hiroshi Kishi, Haruhiko Sago, Aikou Okamoto, Akihiro Umezawa
2020 conf
HCI (46)
Yuki Aoki, Yuki Tasaka, Junji Odaka, Sakae Yamamoto, Makoto Sato, Takehiko Yamaguchi, Tetsuya Harada
2020 conf
HCI (42)
Kaede Nohara, Yasuna Kubo, Makoto Sato, Takehiko Yamaguchi, Tetsuya Harada
2020 conf
HCI (45)
Yuki Hasumi, Keita Ueno, Sakae Yamamoto, Takehiko Yamaguchi, Makoto Sato, Tetsuya Harada
2020 B conf
ICPR
Michio Miwa, Kenji Honda, Makoto Sato
2020 conf
HCI (45)
Hiroya Suzuki, Ryuki Tsukikawa, Daiji Kobayashi, Makoto Sato, Takehiko Yamaguchi, Tetsuya Harada
2019 conf
HCI (5)
Yuki Tasaka, Hikaru Ichimaru, Sakae Yamamoto, Makoto Sato, Takehiko Yamaguchi, Tetsuya Harada
2019 conf
ICAT-EGVE (Posters and Demos)
Gaku Sueta, Naoyuki Saka, Vibol Yem, Tomohiro Amemiya, Michiteru Kitazaki, Makoto Sato, Yasushi Ikei
2019 conf
HCI (5)
Hiroya Suzuki, Ryuki Tsukikawa, Daiji Kobayashi, Makoto Sato, Takehiko Yamaguchi, Tetsuya Harada
2018 conf
HCI (9)
Ryuki Tsukikawa, Ryoto Tomita, Kanata Nozawa, Issei Ohashi, Hiroki Horiuchi, Kentaro Kotani, Daiji Kobayashi, Takehiko Yamaguchi, Makoto Sato, Sakae Yamamoto, Tetsuya Harada
2018 conf
HCI (4)
Yuki Tasaka, Kazukiyo Yamada, Yasuna Kubo, Masanobu Saeki, Sakae Yamamoto, Takehiko Yamaguchi, Makoto Sato, Tetsuya Harada
2018 conf
HCI (4)
Kanata Nozawa, Ryuki Tsukikawa, Takehiko Yamaguchi, Makoto Sato, Tetsuya Harada
2018 conf
AsiaHaptics
Takumi Shimada, Yo Kamishohara, Vibol Yem, Tomohiro Amemiya, Yasushi Ikei, Makoto Sato, Michiteru Kitazaki
2018 conf
HCI (4)
Takehiko Yamaguchi, Hiroki Iwadare, Kazuya Kamijo, Daiji Kobayashi, Tetsuya Harada, Makoto Sato, Sakae Yamamoto
2017 conf
HCI (3)
Katsuhito Akahane, Makoto Sato
2016 conf
ICIT
Lei Wang, Zining Zhen, Xiaolin Zhang, Makoto Sato
2016 C conf
IV
Kikuo Asai, Norio Takase, Makoto Sato
2016 conf
AsiaHaptics
Shunsuke Fujioka, Takao Uchiyama, Kazuyoshi Tagawa, Koichi Hirota, Takusya Nojima, Katsuhito Akahane, Makoto Sato
2016 J jnl
J. Inf. Process.
Makoto Sato, Masami Mohri, Hiroshi Doi, Yoshiaki Shiraishi
2015 conf
AH
Takeo Hamada, Hironori Mitake, Shoichi Hasegawa, Makoto Sato
2015 conf
Smart Graphics
Kenji Honda, Shuhan Ma, Katsuhito Akahane, Makoto Sato
2015 A* conf
VR
Anusha Jayasiri, Shuhan Ma, Yihan Qian, Katsuhito Akahane, Makoto Sato
2015 conf
CyberSec
Makoto Sato, Akihiko Sugimoto, Naoki Hayashi, Yoshiaki Isobe, Ryôichi Sasaki
2015 conf
HAVE
Kikuo Asai, Norio Takase, Makoto Sato
2015 conf
Smart Graphics
Shuhan Ma, Motonori Toshima, Kenji Honda, Katsuhito Akahane, Makoto Sato
2015 conf
SIGGRAPH Asia Haptic Media And Contents Design
Shuhan Ma, Katsuhito Akahane, Makoto Sato
2015 conf
SIGGRAPH Asia Haptic Media And Contents Design
Kazuki Nagai, Soma Tanoue, Katsuhito Akahane, Makoto Sato
2014 conf
AsiaHaptics
Takahiro Okubo, Katsuhito Akahane, Makoto Sato
2014 conf
AsiaHaptics
Hiroshi Koganeyama, Satoshi Miyake, Lanhai Liu, Naoki Maruyama, Katsuhito Akahane, Makoto Sato
2014 conf
HAPTICS
Tatsunori Muraishi, Katsuhito Akahane, Makoto Sato
2014 conf
EuroHaptics (2)
Lanhai Liu, Satoshi Miyake, Naoki Maruyama, Katsuhito Akahane, Makoto Sato
2014 conf
HAVE
Kikuo Asai, Norio Takase, Makoto Sato
2014 conf
DMS
Makoto Sato, Kaori Fujinami
2014 J jnl
J. Vis. Lang. Comput.
Makoto Sato, Kaori Fujinami
2014 conf
AsiaHaptics
Yunong Ji, Hiroyuki Tajima, Katsuhito Akahane, Makoto Sato
2014 conf
AsiaHaptics
Motonori Toshima, Katsuhito Akahane, Makoto Sato
2014 conf
EuroHaptics (2)
Shoichi Hasegawa, Yukinobu Takehana, Alfonso Balandra, Hironori Mitake, Katsuhito Akahane, Makoto Sato
2013 conf
ICAT
Naoki Maruyama, Lanhai Liu, Katsuhito Akahane, Makoto Sato
2013 conf
ICAT
Lanhai Liu, Satoshi Miyake, Katsuhito Akahane, Makoto Sato
2013 conf
ICAT
Anusha Jayasiri, Kenji Honda, Katsuhito Akahane, Makoto Sato
2013 conf
IUI Companion
Ayano Tamura, Shogo Okada, Katsumi Nitta, Tetsuya Harada, Makoto Sato
2013 B conf
SMC
Kikuo Asai, Norio Takase, Makoto Sato
2013 conf
3DUI
Jun Murayama, Yuta Wakui, Yukihiro Hirata, Makoto Sato, Tetsuya Harada
2013 B conf
FG
Xiangning Liu, Yunong Ji, Katsuhito Akahane, Makoto Sato
2013 ch.
Multi-finger Haptic Interaction
Katsuhito Akahane, Jungwoo Hyun, Itsuo Kumazawa, Makoto Sato
2012 C conf
IV
Mina Akaishi, Makoto Sato, Koichi Hori, Tetsuya Ishikawa
2012 conf
ICAT/EGVE/EuroVR
Anusha Jayasiri, Katsuhito Akahane, Makoto Sato
2012 conf
AH
Shoichi Hasegawa, Seiichiro Ishijima, Fumihiro Kato, Hironori Mitake, Makoto Sato
2012 J jnl
Trans. Edutainment
Liping Lin, Yongtian Wang, Katsuhito Akahane, Makoto Sato
2012 conf
SIGGRAPH Posters
Yohei Yamashita, Tatsuya Ishikawa, Hironori Mitake, Yutaka Takase, Fumihiro Kato, Ikumi Susa, Shoichi Hasegawa, Makoto Sato
2012 conf
SIGGRAPH Emerging Technologies
Yohei Yamashita, Tatsuya Ishikawa, Hironori Mitake, Yutaka Takase, Fumihiro Kato, Ikumi Susa, Shoichi Hasegawa, Makoto Sato
2012 conf
IIMSS
Makoto Sato, Mina Akaishi, Koichi Hori
2011 conf
CAD/Graphics
Liping Lin, Yongtian Wang, Yue Liu, Makoto Sato
2011 conf
HCI (2)
Katsuhito Akahane, Takeo Hamada, Takehiko Yamaguchi, Makoto Sato
2011 conf
World Haptics
Ikumi Susa, Makoto Sato, Shoichi Hasegawa
2011 C conf
MIG
Hironori Mitake, Shoichi Hasegawa, Makoto Sato
2010 C conf
EJC
Makoto Sato, Mina Akaishi, Koichi Hori
2010 B conf
ICIP
Hidenori Maruta, Masahiro Ishii, Makoto Sato
2009 C conf
EJC
Makoto Sato, Mina Akaishi, Koichi Hori
2009 B conf
ICPP
Masafumi Onouchi, Keisuke Toyama, Tohru Nojiri, Makoto Sato, Masayoshi Mase, Jun Shirako, Mikiko Sato, Masashi Takada, Masayuki Ito, Hiroyuki Mizuno, Mitaro Namiki, Keiji Kimura, Hironori Kasahara
2009 conf
SIGGRAPH Posters
Takafumi Aoki, Hironori Mitake, Shoichi Hasegawa, Makoto Sato
2009 J jnl
Neural Networks
Hiroyuki Kambara, Kyoungsik Kim, Duk Shin, Makoto Sato, Yasuharu Koike
2009 conf
VRCAI
Naoki Hashimoto, Kenji Honda, Makoto Sato, Mie Sato
2009 conf
VRCAI
Junji Sone, Katsumi Yamada, Itaru Kaneko, Jun Chen, Takayuki Kurosu, Shoichi Hasegawa, Makoto Sato
2009 J jnl
Comput. Graph. Forum
Hironori Mitake, Kazuyuki Asano, Takafumi Aoki, Marc Salvati, Makoto Sato, Shoichi Hasegawa
2009 conf
VRCAI
Kenji Honda, Naoki Hashimoto, Mie Sato, Makoto Sato
2009 conf
ROBIO
Yuzhang Gu, Makoto Sato, Xiaolin Zhang
2009 J jnl
Neural Networks
Charles S. DaSalla, Hiroyuki Kambara, Makoto Sato, Yasuharu Koike
2009 conf
i-CREATe
Charles S. DaSalla, Hiroyuki Kambara, Yasuharu Koike, Makoto Sato
2009 conf
IUCS
Naoki Hashimoto, Yuki Ishiwata, Makoto Sato
2009 A* conf
VR
Seunghyun Woo, Takafumi Aoki, Hironori Mitake, Naoki Hashimoto, Makoto Sato
2009 conf
Advances in Computer Entertainment Technology
Takafumi Aoki, Hironori Mitake, Danial Keoki, Shoichi Hasegawa, Makoto Sato
2008 J jnl
Trans. Edutainment
Makoto Sato, Xiangning Liu, Jun Murayama, Katsuhito Akahane, Masaharu Isshiki
2008 conf
SIGGRAPH Posters
Naoki Hashimoto, Yuichiro Iio, Makoto Sato
2008 A* conf
ICDM
Makoto Sato, Shuichiro Imahara
2008 J jnl
J. Comput. Inf. Sci. Eng.
Junji Sone, Ryou Inoue, Katsumi Yamada, Takanori Nagae, Kinya Fujita, Makoto Sato
2008 J jnl
J. Adv. Comput. Intell. Intell. Informatics
Woong Choi, Naoki Hashimoto, Ross Walker, Kozaburo Hachimura, Makoto Sato
2008 conf
SIGGRAPH ASIA Art Gallery & Emerging Technologies
Seunghyun Woo, Takafumi Aoki, Hironori Mitake, Naoki Hashimoto, Makoto Sato
2008 conf
SIGGRAPH Posters
Seunghyun Woo, Takafumi Aoki, Hironori Mitake, Naoki Hashimoto, Makoto Sato
2008 C conf
IAS
Katsumi Yamazaki, Yu. Fukushima, Makoto Sato
2008 conf
SIGGRAPH New Tech Demos
Ikumi Susa, Yuto Ikeda, Takashi Tokizaki, Hironori Mitake, Makoto Sato, Shoichi Hasegawa
2008 J jnl
Inf. Media Technol.
Marc Salvati, Naoki Hashimoto, Makoto Sato
2007 conf
Shape Modeling International
Marc Salvati, Seung Zoo Jeong, Naoki Hashimoto, Makoto Sato
2007 J jnl
IEEE Computer Graphics and Applications
Yoshinori Dobashi, Tsuyoshi Yamamoto, Makoto Sato, Shoichi Hasegawa, Mitsuaki Kato, Tomoyuki Nishita
2007 J jnl
Syst. Comput. Jpn.
Naoki Hashimoto, Yoshihiko Ishida, Makoto Sato
2007 C conf
CW
Jun Murayama, Hiromi Shimizu, Chang Soo Nam, Hiroko Satoh, Makoto Sato
2007 conf
EGVE (Short Papers & Posters)
Junji Sone, Ryou Inoue, S. Tsuyuki, K. Ishikawa, Katsumi Yamada, Itaru Kaneko, Y. Tokuyama, Kinya Fujita, Makoto Sato
2007 conf
SIGGRAPH Posters
Kenji Honda, Naoki Hashimoto, Makoto Sato
2007 A* conf
VR
Hironori Mitake, Shoichi Hasegawa, Yasuharu Koike, Makoto Sato
2007 conf
EGVE (Short Papers & Posters)
Kenji Honda, Naoki Hashimoto, Makoto Sato
2006 conf
ICAT Workshops
Katsuhito Akahane, Shoichi Hasegawa, Yasuharu Koike, Makoto Sato
2006 B conf
VRST
Yoshinori Dobashi, Makoto Sato, Shoichi Hasegawa, Tsuyoshi Yamamoto, Mitsuaki Kato, Tomoyuki Nishita
2006 B conf
IJCNN
Kyuwan Choi, Makoto Sato, Yasuharu Koike
2006 J jnl
IEICE Trans. Inf. Syst.
Kyuwan Choi, Makoto Sato, Yasuharu Koike
2006 conf
Edutainment
Seung Zoo Jeong, Naoki Hashimoto, Makoto Sato
2006 J jnl
Comput. Entertain.
Shoichi Hasegawa, Ishikawa Toshiaki, Naoki Hashimoto, Marc Salvati, Hironori Mitake, Yasuharu Koike, Makoto Sato
2006 C conf
IAS
K. S. Kim, Hiroyuki Kambara, Duk Shin, Makoto Sato, Yasuharu Koike
2006 conf
SIGGRAPH Research Posters
Naoki Hashimoto, Mie Sato, Yu Takahashi, Masao Kasuga, Makoto Sato
2006 conf
ICPR (3)
Huynh Quang Huy Viet, Makoto Sato, Hiromi T. Tanaka
2006 B conf
IJCNN
Hiroyuki Kambara, Kyoungsik Kim, Duk Shin, Makoto Sato
2006 conf
SIGGRAPH Emerging Technologies
Jun Noguchi, Koichiro Kimura, Masayoshi Ohuchi, Hiromi Shimizu, Takafumi Aoki, Jiro Baba, Shoichi Hasegawa, Makoto Sato
2006 conf
SIGGRAPH Research Posters
Naoki Hashimoto, Seung Zoo Jeong, Makoto Sato
2006 conf
ICMC
Takefumi Miura, Ayumu Akabane, Makoto Sato, Takao Tsuda, Seiki Inoue
2006 conf
ICAT
Duk Shin, Atsushi Katayama, Kyoungsik Kim, Hiroyuki Kambara, Makoto Sato, Yasuharu Koike
2005 conf
WHC
Katsuhito Akahane, Shoichi Hasegawa, Yasuharu Koike, Makoto Sato
2005 conf
IPT/EGVE
Naoki Hashimoto, Yoshihiko Ishida, Makoto Sato
2005 conf
SIGGRAPH Sketches
Yoshinori Dobashi, Shoichi Hasegawa, Mitsuaki Kato, Makoto Sato, Tsuyoshi Yamamoto, Tomoyuki Nishita
2005 conf
SIGGRAPH Posters
Akihiko Shirai, Masafumi Takahashi, Kazunori Miyata, Makoto Sato, Simon Richir
2005 J jnl
IEICE Trans. Inf. Syst.
Seung Zoo Jeong, Naoki Hashimoto, Makoto Sato
2005 C conf
CW
Jaeho Ryu, Naoki Hashimoto, Makoto Sato
2005 J jnl
IEICE Trans. Inf. Syst.
Seri Pansang, Boonwat Attachoo, Chom Kimpan, Makoto Sato
2005 conf
SIGGRAPH Emerging Technologies
Takafumi Aoki, Takashi Matsushita, Yuichiro Iio, Hironori Mitake, Takashi Toyama, Shoichi Hasegawa, Rikiya Ayukawa, Hiroshi Ichikawa, Makoto Sato, Takatsugu Kuriyama, Kazuyuki Asano, Toshihiro Kawase, Itaru Matumura
2005 C conf
CW
Seung Zoo Jeong, Woong Choi, Naoki Hashimoto, Makoto Sato
2005 conf
SIGGRAPH Emerging Technologies
Shoichi Hasegawa, Makoto Sato, Yoshinori Dobashi, Tsuyoshi Yamamoto, Mitsuaki Kato, Tomoyuki Nishita
2004 conf
FGR
Woong Choi, Seung Zoo Jeong, Naoki Hashimoto, Syouichi Hasegawa, Yasuharu Koike, Makoto Sato
2004 J jnl
IEICE Trans. Inf. Syst.
Jun Murayama, Yanlin Luo, Katsuhito Akahane, Shoichi Hasegawa, Makoto Sato
2004 conf
Advances in Computer Entertainment Technology
Seung Zoo Jeong, Naoki Hashimoto, Makoto Sato
2004 Misc conf
ICIG
Yanlin Luo, Ping Guo, Shoichi Hasegawa, Makoto Sato
2004 conf
3DPVT
Huynh Quang Huy Viet, Makoto Sato, Hiromi T. Tanaka
2004 conf
PCM (3)
Akihiko Shirai, Kiichi Kobayashi, Masahiro Kawakita, Shoichi Hasegawa, Masayuki Nakajima, Makoto Sato
2004 conf
PCM (3)
Naoki Hashimoto, Jaeho Ryu, Seung Zoo Jeong, Makoto Sato
2004 C conf
CW
Naoki Hashimoto, Seung Zoo Jeong, Yasutoyo Takeyama, Makoto Sato
2004 J jnl
Comput. Graph. Forum
Shoichi Hasegawa, Makoto Sato
2004 J jnl
J. Robotics Mechatronics
Masaaki Uechi, Yutaka Naito, Duk Shin, Makoto Sato, Yasuharu Koike
2004 B conf
PRICAI
Shuichiro Imahara, Makoto Sato, Akihiko Nakase
2003 conf
ICAT
Yanlin Luo, Jun Murayama, Katsuhito Akahane, Shoichi Hasegawa, Makoto Sato
2003 conf
HCI (4)
Makoto Sato, Jaeho Ryu, Hidenori Maruta, Katsuhito Akahane, Masaru Iwashita, Naoki Hashimoto, Shoichi Hasegawa
2003 conf
HAPTICS
Shoichi Hasegawa, Nobuaki Fujii, Yasuharu Koike, Makoto Sato
2003 Misc conf
DICTA
Huynh Quang Huy Viet, Michio Miwa, Hidenori Maruta, Makoto Sato
2003 J jnl
Comput. Graph. Forum
Nicolas Tarrin, Sabine Coquillart, Shoichi Hasegawa, Laroussi Bouguila, Makoto Sato
2003 A* conf
SIGGRAPH
Nicolas Tarrin, Sabine Coquillart, Shoichi Hasegawa, Laroussi Bouguila, Makoto Sato
2003 conf
ICAT
Laroussi Bouguila, Béat Hirsbrunner, Makoto Sato, Masaru Iwashita
2002 J jnl
Presence Teleoperators Virtual Environ.
Somsak Walairacht, Keita Yamada, Shoichi Hasegawa, Makoto Sato
2002 conf
SIGGRAPH Abstracts and Applications
Laroussi Bouguila, Makoto Sato, Shoichi Hasegawa, Naoki Hashimoto, Naoki Matsumoto, Atsushi Toyama, Jelel Ezzine, Dalel Maghrebi
2002 conf
IWEC
Akihiko Shirai, Shoichi Hasegawa, Yasuharu Koike, Makoto Sato
2002 conf
IWEC
Makoto Sato, Yasuharu Koike
2002 C conf
EGVE
Laroussi Bouguila, Masahiro Ishii, Makoto Sato
2002 A* conf
VR
Seahak Kim, Shoichi Hasegawa, Yasuharu Koike, Makoto Sato
2002 A* conf
VR
Laroussi Bouguila, Makoto Sato
2002 B conf
AVI
Laroussi Bouguila, Masahiro Ishii, Makoto Sato
2001 A* conf
ICML
Makoto Sato, Shigenobu Kobayashi
2001 A* conf
VR
Haruo Takemura, Makoto Sato
2000 J jnl
Appl. Math. Comput.
Kiyoshi Kawabata, Makoto Sato, Larry Travis
2000 Misc conf
PG
Tomohiro Endo, Makoto Sato, Yoshihiro Kajiki, Toshio Honda
2000 B conf
VRST
Seahak Kim, Masahiro Ishii, Yasuharu Koike, Makoto Sato
2000 A* conf
ACM Multimedia
Laroussi Bouguila, Masahiro Ishii, Makoto Sato
2000 J jnl
J. Electronic Imaging
Phongsuphap Sukanya, Ryo Takamatsu, Makoto Sato
2000 conf
ICPADS Workshops
Shoichi Hasegawa, Masahiro Ishii, Makoto Sato, Yasuharu Koike
2000 conf
Haptic Human-Computer Interaction
Laroussi Bouguila, Masahiro Ishii, Makoto Sato
2000 B conf
ICPR
Michio Miwa, Masahiro Ishii, Yasuharu Koike, Makoto Sato
2000 A* conf
VR
Somsak Walairacht, Yasuharu Koike, Makoto Sato
2000 C conf
IDEAL
Makoto Sato, Shigenobu Kobayashi
2000 conf
Haptic Human-Computer Interaction
Laroussi Bouguila, Masahiro Ishii, Makoto Sato
1999 conf
SIP
Shun Ido, Masanori Izumida, Kenji Murakami, Makoto Sato
1998 conf
SEAL
Toru Yamaguchi, Makoto Sato, Tomohiro Takagi, Hideki Hashimoto
1998 conf
SEAL
Naoki Kohata, Makoto Sato, Toru Yamaguchi, Takanobu Baba, Hideki Hashimoto
1998 B conf
ICPR
Phongsuphap Sukanya, Ryo Takamatsu, Makoto Sato
1998 J jnl
J. Intell. Robotic Syst.
Toru Yamaguchi, Makoto Sato, Tomohiro Takagi
1998 conf
APCHI
Ryo Takamatsu, Tomotaka Taniguchi, Makoto Sato
1998 conf
ICIP (1)
Phongsuphap Sukanya, Ryo Takamatsu, Makoto Sato
1997 J jnl
J. Robotics Mechatronics
Masahiro Ishii, Motohiro Swawatari, Makoto Sato
1997 J jnl
J. Robotics Mechatronics
Makoto Sato, Yukihiro Hirata, Hiroshi Kawarada
1997 conf
SIGGRAPH Visual Proceedings
Makoto Sato
1996 B conf
ICPR
Supoj Chinveeraphan, Ryo Takamatsu, Makoto Sato
1996 B conf
ICPR
Phongsuphap Sukanya, Hideki Tanuma, Ryo Takamatsu, Makoto Sato
1996 conf
ICIP (3)
Phongsuphap Sukanya, Ryo Takamatsu, Makoto Sato
1996 B conf
COMPSAC
Makoto Sato, Takashi Hirooka, Kiyomi Wada, Fujio Yamamoto
1996 B conf
ICPR
Shun Ido, Satoshi Arai, Ryo Takamatsu, Makoto Sato
1996 Misc conf
MVA
Phongsuphap Sukanya, Ryo Takamatsu, Makoto Sato
1995 conf
ICSC
Abdelmalek B. C. Zidouri, Supoj Chinveeraphan, Makoto Sato
1995 J jnl
IEICE Trans. Inf. Syst.
Abdelmalek B. C. Zidouri, Supoj Chinveeraphan, Makoto Sato
1995 J jnl
IEICE Trans. Inf. Syst.
Supoj Chinveeraphan, Abdelmalek B. C. Zidouri, Makoto Sato
1995 J jnl
IEICE Trans. Inf. Syst.
Abdelmalek B. C. Zidouri, Supoj Chinveeraphan, Makoto Sato
1995 Misc conf
ICIAP
Abdelmalek B. C. Zidouri, Supoj Chinveeraphan, Makoto Sato
1995 C conf
CAIP
Supoj Chinveeraphan, Ryo Takamatsu, Makoto Sato
1994 J jnl
Presence Teleoperators Virtual Environ.
Masahiro Ishii, Makoto Sato
1994 J jnl
Presence Teleoperators Virtual Environ.
Masahiro Ishii, Masanori Nakata, Makoto Sato
1994 Misc conf
MVA
Supoj Chinveeraphan, Abdelmalek B. C. Zidouri, Makoto Sato
1994 J jnl
Syst. Comput. Jpn.
Yukihiro Hirata, Takehisa Mizuguchi, Makoto Sato, Hiroshi Kawarada
1993 conf
VRAIS
Masahiro Ishii, Makoto Sato
1993 A conf
ICDAR
Abdelmalek B. C. Zidouri, Supoj Chinveeraphan, Makoto Sato
1992 A conf
IROS
Yukihiro Hirata, Makoto Sato
1992 Misc conf
MVA
Abdelmalek B. C. Zidouri, Supoj Chinveeraphan, Makoto Sato
1992 conf
ICPR (3)
Ken'ichi Douniwa, Supoj Chinveeraphan, Makoto Sato
1992 J jnl
J. Robotics Mechatronics
Makoto Sato, Shunichi Numazaki, Yukihiro Hirata, Hiroshi Kawarada
1992 conf
ICPR (3)
Genshu Kin, Makoto Sato
1992 J jnl
Syst. Comput. Jpn.
Makoto Sato, Yukihiro Hirata, Hiroshi Kawarada
1990 conf
ICPR (2)
Toshikazu Wada, Makoto Sato
1988 B conf
ICPR
Makoto Sato, Toshikazu Wada, Hiroshi Kawarada
1988 J jnl
Syst. Comput. Jpn.
Makoto Sato, Hiroshi Sasaki
1987 Misc conf
ICASSP
Makoto Sato, Toshikazu Wada, Hiroshi Kawarada
1982
Makoto Sato
docs/new-code-binja-schema.md
← Index docs/new-code-binja-schema.md markdown
#################################
###### CODE RELATED TABLES ######
#################################

### CREATE FULL REDB DATABASE
def create_decompiled_binja_with_all_tables(client):
    create_phase1_decompiled_binja_tables(client)

#### CREATE FULL TABLES
def create_phase1_decompiled_binja_tables(client):
    create_function_analysis_error_dbtable(client)
    create_binja_decompiled_dbtable(client)
    create_binja_disassembly_dbtable(client)
    create_binja_cfg_dbtable(client)

#################################
### DECOMPILED BINJA INDIVIDUAL TABLES
#################################
def create_function_analysis_error_dbtable(client):
    client.command("""
    CREATE TABLE IF NOT EXISTS function_analysis_errors_binja (
        sha256 FixedString(64),
        function_name Nullable(String) CODEC(ZSTD(3)),
        function_address UInt64,
        error_location LowCardinality(String) CODEC(ZSTD(3)),
        error_message Nullable(String) CODEC(ZSTD(3)),
        error_details Nullable(String) CODEC(ZSTD(3)),
        error_type Nullable(String) CODEC(ZSTD(3)),
        error_hash FixedString(32), -- MD5, To help identify duplicate errors
        status Enum8('new' = 1, 'investigating' = 2, 'fixed' = 3, 'wontfix' = 4) DEFAULT 'new',
        analysis_date DateTime64(3, 'UTC'),
        PRIMARY KEY (sha256, function_address, error_location)
    )
    ENGINE = MergeTree()
    ORDER BY (sha256, function_address, error_location);
    """)

def create_binja_decompiled_dbtable(client):
    # Create decompiled_functions_content table
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_decompiled_functions_content (
        decompiled_function_hash FixedString(64),
        decompiled_function String CODEC(ZSTD(3)),
        decompiled_function_lower String MATERIALIZED lower(decompiled_function) CODEC(ZSTD(3)),
        function_type Enum8('USER'=1, 'LIBRARY'=2, 'THUNK'=3, 'EXTERNAL'=4, 'UNKNOWN'=5) DEFAULT 'UNKNOWN',  -- NOT NULL TODO: remove THUNK and EXTERNAL
        flattened_score Nullable(Float64),
        mba_score Nullable(Float64),
        analysis_date DateTime64(3, 'UTC'),

        INDEX idx_function_content_token lower(decompiled_function) TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 1,
        --- INDEX idx_text_decompiled_function decompiled_function TYPE text(tokenizer = 'splitByNonAlpha', preprocessor = lower(decompiled_function)) GRANULARITY 64,
        INDEX idx_func_hash decompiled_function_hash TYPE bloom_filter GRANULARITY 1,
    ) ENGINE = ReplacingMergeTree(analysis_date)
    PRIMARY KEY decompiled_function_hash -- TODO: remove is redundant
    ORDER BY decompiled_function_hash;
    """)

    # Create decompiled_functions_references table
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_decompiled_functions_references (
        sha256 FixedString(64),
        sha1 FixedString(40),
        md5 FixedString(32),
        decompiled_function_hash FixedString(64),
        disassembled_function_hash Nullable(FixedString(64)),
        decompiled_function_name LowCardinality(String),
        decompiled_function_prototype LowCardinality(String),
        decompiled_function_address UInt64,
        functions_caller Array(String),
        functions_call Array(String),

        INDEX idx_sha256 sha256 TYPE bloom_filter GRANULARITY 1,
        INDEX idx_func_hash decompiled_function_hash TYPE bloom_filter GRANULARITY 1,
        INDEX idx_func_name decompiled_function_name TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 1,
        INDEX idx_func_addr decompiled_function_address TYPE minmax GRANULARITY 1,
        analysis_date DateTime64(3, 'UTC')
    ) ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY (sha256, decompiled_function_hash);
    """)

def create_binja_disassembly_dbtable(client):
    # Create disassembly_functions_content table
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_disassembled_functions_content (
        -- Content hashes for each normalization level
        disassembled_function_hash FixedString(64),             -- This is the hash of the disassembled function without addresses
        
        -- The actual function content at different normalization levels
        disassembled_function String CODEC(ZSTD(3)),
        disassembled_function_no_addresses String CODEC(ZSTD(3)),

        -- Function 
        function_type Enum8('USER'=1, 'LIBRARY'=2, 'THUNK'=3, 'EXTERNAL'=4, 'UNKNOWN'=5) DEFAULT 'UNKNOWN',  -- NOT NULL TODO: remove THUNK and EXTERNAL

        -- Analysis fields
        instructions_count UInt32,
        instructions_types Array(LowCardinality(String)), -- Types of instructions used
        control_flow_count UInt32,                      -- Number of control flow instructions
        memory_access_pattern Array(LowCardinality(String)),  -- Patterns of memory access
        register_usage Array(LowCardinality(String)),         -- Types of registers used
        data_references_count UInt32,                   -- Number of data references
        opcode_frequency_vector Array(Float32),-- Not computed yet
        api_calls_vector Array(Float32),-- Not computed yet
        minhash_signature Array(UInt64),-- Not computed yet
        max_block_size Nullable(UInt32),
        num_calls Nullable(UInt32),
        stack_size Nullable(Int32),
        instruction_type_ratios Array(Float32), -- Not computed yet
        instruction_embedding Array(Float32), -- Not computed yet
        analysis_date DateTime64(3, 'UTC'),

        -- Indexes for each normalization level
        INDEX idx_disasm_ngram disassembled_function TYPE ngrambf_v1(3, 32768, 3, 0) GRANULARITY 1,
        INDEX idx_function_type function_type TYPE set(10) GRANULARITY 1,
        INDEX idx_instr_count instructions_count TYPE minmax GRANULARITY 4

    ) ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY (disassembled_function_hash);
    """)

    client.command("""
    CREATE TABLE code_binja_disassembled_functions_references
    (
        -- Original fields
        sha256 FixedString(64),
        sha1 FixedString(40),
        md5 FixedString(32),
        disassembled_function_hash FixedString(64),
        decompiled_function_hash Nullable(FixedString(64)),

        disassembled_function_name LowCardinality(String),
        disassembled_function_address UInt64,
        analysis_date DateTime64(3, 'UTC'),
        
        -- New hash fields moved from content table
        ssdeep_disassembly Nullable(String),
        tlsh_disassembly Nullable(FixedString(72)),
        ssdeep_llil Nullable(String),
        tlsh_llil Nullable(FixedString(72)),
        
        -- OPTIMIZED INDEXES for all search patterns
        INDEX idx_func_addr disassembled_function_address TYPE minmax GRANULARITY 1,
        INDEX idx_sha256 sha256 TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_disasm tlsh_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_ssdeep_disasm ssdeep_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_llil tlsh_llil TYPE bloom_filter GRANULARITY 1,
        INDEX idx_ssdeep_norm ssdeep_llil TYPE bloom_filter GRANULARITY 1,
        INDEX idx_func_name disassembled_function_name TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 2
    )
    ENGINE = ReplacingMergeTree(analysis_date)
    -- OPTIMIZED ORDER BY: Primary query pattern first, then hash fields for locality
    ORDER BY (sha256, disassembled_function_hash)
    SETTINGS index_granularity = 8192
    """)

def create_binja_llil_dbtable(client):
    # Create llil_functions_content table
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_llil_functions_content (
        -- Content hashes for each normalization level
        llil_function_hash FixedString(64),             -- sha256_llil This is the hash of the disassembled function without addresses

        -- Function 
        function_type Enum8('USER'=1, 'LIBRARY'=2, 'THUNK'=3, 'EXTERNAL'=4, 'UNKNOWN'=5) DEFAULT 'UNKNOWN',  -- NOT NULL TODO: remove THUNK and EXTERNAL

        -- Analysis fields
        instructions_types_llil Array(LowCardinality(String)), -- Types of instructions used
        control_flow_count_llil UInt32,                      -- Number of control flow instructions
        memory_access_pattern_llil Array(LowCardinality(String)),  -- Patterns of memory access
        register_usage_llil Map(LowCardinality(String), Tuple(UInt32, UInt32)),         -- Types of registers used
        total_reg_reads UInt32,
        total_reg_written UInt32,
        data_references_count UInt32,                   -- Number of data references
        max_block_size Nullable(UInt32),
        num_calls Nullable(UInt32),
        stack_size Nullable(Int32),
        body_llil_vector Array(Tuple(UInt32, Array(UInt16))),
        analysis_date DateTime64(3, 'UTC'),

        -- Indexes for each normalization level
        INDEX function_type_idx function_type TYPE set(10) GRANULARITY 1,
        INDEX idx_reg_usage mapKeys(register_usage_llil) TYPE bloom_filter(0.01) GRANULARITY 1

    ) ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY llil_function_hash;
    """)

    client.command("""
    CREATE TABLE code_binja_llil_functions_references
    (
        -- Original fields
        sha256 FixedString(64),
        sha1 FixedString(40),
        md5 FixedString(32),
        llil_function_hash Nullable(FixedString(64)),
        disassembled_function_hash FixedString(64),
        
        -- New hash fields moved from content table
        ssdeep_disassembly Nullable(String),
        tlsh_disassembly Nullable(FixedString(72)),
        ssdeep_llil Nullable(String),
        tlsh_llil Nullable(FixedString(72)),

        analysis_date DateTime64(3, 'UTC'),
        
        -- OPTIMIZED INDEXES for all search patterns
        INDEX idx_sha256 sha256 TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_disasm tlsh_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_ssdeep_disasm ssdeep_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_llil tlsh_llil TYPE bloom_filter GRANULARITY 1,
        INDEX idx_ssdeep_llil ssdeep_llil TYPE bloom_filter GRANULARITY 1,
    )
    ENGINE = ReplacingMergeTree(analysis_date)
    -- OPTIMIZED ORDER BY: Primary query pattern first, then hash fields for locality
    ORDER BY (sha256, function_address)
    SETTINGS index_granularity = 8192
    """)

def create_binja_cfg_dbtable(client):
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_cfg_blocks_content (
        block_instructions_hash FixedString(64), -- PK
        block_size UInt32,
        instructions_count UInt16,
        branch_type Enum8('DIRECT'=1, 'CONDITIONAL'=2, 'CALL'=3, 'RETURN'=4, 'FALLTHROUGH'=5, 'INDIRECT'=6, 'UNKNOWN'=7),
        block_type Enum8('CODE'=1, 'DATA'=2, 'THUNK'=3),
        flags Array(String),
        analysis_date DateTime64(3, 'UTC'),

        -- Indexes for filtering/analysis
        INDEX idx_branch_type branch_type TYPE set(10) GRANULARITY 4,
        INDEX idx_block_type block_type TYPE set(5) GRANULARITY 4,
        INDEX idx_instr_count instructions_count TYPE minmax GRANULARITY 4,
        INDEX idx_block_size block_size TYPE minmax GRANULARITY 4
    )
    ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY (block_instructions_hash);
    """)
  
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_cfg_blocks_references (
        sha256 FixedString(64),
        sha1 FixedString(40),
        md5 FixedString(32),
        block_instructions_hash FixedString(64),
        disassembled_function_hash FixedString(64),
        
        -- Address information (for CFG traversal and debugging)
        function_address UInt64,
        block_start_address UInt64,
        block_end_address UInt64,
        
        -- CFG structure (addresses refer to block_start_address)
        predecessor_blocks Array(UInt64),
        successor_blocks Array(UInt64),
        depth UInt16,
        position UInt32,
        
        -- Dominator analysis
        dominators Array(UInt16),
        post_dominators Array(UInt16),
        
        analysis_date DateTime64(3, 'UTC'),
        
        -- OPTIMIZED INDEXES based on query patterns
        INDEX idx_sha256 sha256 TYPE bloom_filter GRANULARITY 1,
        INDEX idx_block_hash block_instructions_hash TYPE bloom_filter GRANULARITY 1,
        INDEX idx_func_hash disassembled_function_hash TYPE bloom_filter GRANULARITY 1,
        INDEX idx_func_addr function_address TYPE minmax GRANULARITY 1,
        INDEX idx_block_start block_start_address TYPE minmax GRANULARITY 1,
        INDEX idx_depth depth TYPE minmax GRANULARITY 4,
        INDEX idx_position position TYPE minmax GRANULARITY 4
    )
    ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY (sha256, function_address, block_start_address)
    SETTINGS index_granularity = 8192;
    """)

def create_binja_strings_dbtable(client):
    # 1. Raw table - INSERT target
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_strings_raw (
        sha256 FixedString(64),
        string String CODEC(ZSTD(3)),              -- Decoded UTF-8 string (for searching)
        string_raw String CODEC(ZSTD(3)),          -- Raw bytes from binary (ground truth)
        string_encoding LowCardinality(String),    -- Detected/guessed encoding by binja
        string_offset UInt64,
        string_length UInt32,                      -- Length of decoded string
        string_raw_length UInt32,                  -- Length of raw bytes
        string_entropy Float32
    )
    ENGINE = Null;
    """)
   
    # 3a. Target table for reverse lookup (with indexes)
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_strings_by_binary (
        sha256 FixedString(64),
        string_offset UInt64,
        string String CODEC(ZSTD(3)),
        string_raw String CODEC(ZSTD(3)),
        string_encoding LowCardinality(String),
        string_length UInt32,
        string_raw_length UInt32,
        string_entropy Float32,
        
        INDEX idx_sha256 sha256 TYPE bloom_filter GRANULARITY 1,
        INDEX idx_string_ngram lower(string) TYPE ngrambf_v1(3, 32768, 3, 0) GRANULARITY 1,
        --- INDEX idx_string string TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 1,
        --- INDEX idx_string_raw string_raw TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 1,
        INDEX idx_entropy string_entropy TYPE minmax GRANULARITY 4
    )
    ENGINE = ReplacingMergeTree()
    ORDER BY (sha256, string_offset);
    """)
    
    # 3b. Materialized view -> target table
    client.command("""
    CREATE MATERIALIZED VIEW IF NOT EXISTS code_binja_strings_by_binary_mv
    TO code_binja_strings_by_binary
    AS SELECT
        sha256,
        string_offset,
        string,
        string_raw,
        string_encoding,
        string_length,
        string_raw_length,
        string_entropy
    FROM code_binja_strings_raw;
    """)

    client.command("""
    -- 1. Create the new public-only popularity table
    CREATE TABLE mv_string_popularity_public_table (
        string_xxhash64 UInt64,
        sample_count AggregateFunction(uniq, FixedString(64))
    ) ENGINE = AggregatingMergeTree()
    ORDER BY string_xxhash64;
    """)

    client.command("""
    -- 2. Create the MV for new data going forward
    CREATE MATERIALIZED VIEW mv_string_popularity_public
    TO mv_string_popularity_public_table AS
    SELECT
        xxHash64(s.string) AS string_xxhash64,
        uniqState(s.sha256) AS sample_count
    FROM code_binja_strings_raw s
    INNER JOIN catalog_visibility_lookup_v2 v 
        ON s.sha256 = v.sha256 AND v.visibility_scope = 'public'
    GROUP BY string_xxhash64;
    """)

    # client.command("""
    # INSERT INTO mv_string_popularity_public_table
    # SELECT
    #     xxHash64(s.string) AS string_xxhash64,
    #     uniqState(s.sha256) AS sample_count
    # FROM code_binja_strings_by_binary s
    # INNER JOIN catalog_visibility_lookup_v2 v 
    #     ON s.sha256 = v.sha256 AND v.visibility_scope = 'public'
    # GROUP BY string_xxhash64;
    # """)

def create_binja_function_similarity_metrics_dbtable(client):
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_function_similarity_metrics (
        disassembled_function_hash FixedString(64),
        
        -- Complexity metrics
        cyclomatic_complexity Nullable(UInt16),
        
        -- Fuzzy hashes (duplicated from reference tables for performance)
        ssdeep_disassembly Nullable(String),
        tlsh_disassembly Nullable(FixedString(72)),
        ssdeep_llil Nullable(String),
        tlsh_llil Nullable(FixedString(72)),
        
        -- Similarity hashes
        minhash Array(UInt8),
        
        analysis_date DateTime64(3, 'UTC'),
        
        -- Indexes
        INDEX idx_complexity cyclomatic_complexity TYPE minmax GRANULARITY 4,
        INDEX idx_ssdeep_disasm ssdeep_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_disasm tlsh_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_ssdeep_llil ssdeep_llil TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_llil tlsh_llil TYPE bloom_filter GRANULARITY 1
    )
    ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY disassembled_function_hash;
    """)

def create_golang_metadata_dbtable(client):
    client.command("""
    CREATE TABLE IF NOT EXISTS redb_golang_metadata (
        sha256 FixedString(64),
        goresym JSON,
        analysis_date DateTime64(3, 'UTC')
    ) ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY sha256
    """)