{"id":58629,"date":"2026-05-06T22:07:01","date_gmt":"2026-05-06T20:07:01","guid":{"rendered":"https:\/\/klaeslab.de\/?page_id=58629"},"modified":"2026-05-07T02:23:29","modified_gmt":"2026-05-07T00:23:29","slug":"publications-2","status":"publish","type":"page","link":"https:\/\/klaeslab.de\/de\/publications-2\/","title":{"rendered":"Publications2"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><div class=\"vc_row wpb_row vc_row-fluid\"><div class=\"wpb_column vc_column_container vc_col-sm-12\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\n\t<div class=\"wpb_raw_code wpb_raw_html wpb_content_element\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<!-- KlaesLab Publications Widget -->\r\n<style>\r\n#klpub *{box-sizing:border-box;margin:0;padding:0;font-family:inherit}\r\n#klpub{padding:2rem 0;color:#1a1a1a}\r\n#klpub .kl-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap;gap:12px}\r\n#klpub .kl-title{font-size:20px;font-weight:600;color:#17365c}\r\n#klpub .kl-updated{font-size:12px;color:#888}\r\n#klpub .kl-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:1.5rem}\r\n#klpub .kl-stat{background:#f5f7fa;border-radius:8px;padding:14px 10px;text-align:center}\r\n#klpub .kl-stat-num{font-size:22px;font-weight:600;color:#17365c}\r\n#klpub .kl-stat-lbl{font-size:11px;color:#888;margin-top:3px}\r\n#klpub .kl-controls{display:flex;flex-direction:column;gap:10px;margin-bottom:1.5rem}\r\n#klpub .kl-search-wrap{position:relative}\r\n#klpub .kl-search-wrap svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);opacity:.4}\r\n#klpub #klSearch{width:100%;padding:10px 12px 10px 38px;border:1px solid #dde2ea;border-radius:8px;font-size:14px;outline:none;transition:border .15s}\r\n#klpub #klSearch:focus{border-color:#17365c}\r\n#klpub .kl-filters{display:flex;gap:6px;flex-wrap:wrap;align-items:center}\r\n#klpub .kl-filter-lbl{font-size:12px;color:#888;margin-right:2px}\r\n#klpub .kl-chip{font-size:12px;padding:5px 12px;border-radius:20px;border:1px solid #dde2ea;background:#fff;color:#555;cursor:pointer;transition:all .15s;white-space:nowrap}\r\n#klpub .kl-chip:hover{border-color:#17365c;color:#17365c}\r\n#klpub .kl-chip.active{background:#17365c;border-color:#17365c;color:#fff}\r\n#klpub .kl-year-section{margin-bottom:2.5rem}\r\n#klpub .kl-year-heading{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding-bottom:10px;border-bottom:2px solid #17365c}\r\n#klpub .kl-year-num{font-size:22px;font-weight:600;color:#17365c}\r\n#klpub .kl-year-badge{font-size:12px;color:#17365c;background:#e8f0f8;padding:3px 10px;border-radius:12px}\r\n#klpub .kl-paper{background:#fff;border:1px solid #e8edf3;border-left:3px solid #17365c;border-radius:0 8px 8px 0;padding:14px 16px;margin-bottom:10px;transition:border-color .15s}\r\n#klpub .kl-paper:hover{border-color:#c5d3e0;border-left-color:#17365c}\r\n#klpub .kl-paper-title{font-size:14px;font-weight:600;color:#17365c;line-height:1.45;margin-bottom:6px;text-decoration:none;display:block}\r\n#klpub .kl-paper-title:hover{text-decoration:underline}\r\n#klpub .kl-authors{font-size:12px;color:#666;line-height:1.5;margin-bottom:8px}\r\n#klpub .kl-authors .kl-me{color:#17365c;font-weight:600}\r\n#klpub .kl-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}\r\n#klpub .kl-journal{font-size:11px;font-style:italic;background:#eef2f7;color:#17365c;padding:3px 8px;border-radius:4px}\r\n#klpub .kl-tag{font-size:11px;padding:3px 8px;border-radius:4px}\r\n#klpub .kl-tag-bci{background:#e1f5ee;color:#085041}\r\n#klpub .kl-tag-motor{background:#eeedfe;color:#3c3489}\r\n#klpub .kl-tag-vr{background:#faeeda;color:#633806}\r\n#klpub .kl-tag-ml{background:#faece7;color:#712b13}\r\n#klpub .kl-tag-eye{background:#fbeaf0;color:#72243e}\r\n#klpub .kl-doi{font-size:11px;color:#aaa;margin-left:auto;text-decoration:none;display:flex;align-items:center;gap:3px;white-space:nowrap}\r\n#klpub .kl-doi:hover{color:#17365c}\r\n#klpub .kl-empty{text-align:center;padding:3rem;color:#aaa;font-size:14px}\r\n#klpub .kl-loading{text-align:center;padding:2rem;color:#aaa;font-size:14px}\r\n@media(max-width:600px){\r\n  #klpub .kl-stats{grid-template-columns:repeat(2,1fr)}\r\n  #klpub .kl-doi{display:none}\r\n}\r\n<\/style>\r\n\r\n<div id=\"klpub\">\r\n  <div class=\"kl-header\">\r\n    <div class=\"kl-title\">Publications<\/div>\r\n    <div class=\"kl-updated\" id=\"klUpdated\">Loading...<\/div>\r\n  <\/div>\r\n  <div class=\"kl-stats\">\r\n    <div class=\"kl-stat\"><div class=\"kl-stat-num\" id=\"statTotal\">\u2014<\/div><div class=\"kl-stat-lbl\">Total papers<\/div><\/div>\r\n    <div class=\"kl-stat\"><div class=\"kl-stat-num\" id=\"statYears\">\u2014<\/div><div class=\"kl-stat-lbl\">Years active<\/div><\/div>\r\n    <div class=\"kl-stat\"><div class=\"kl-stat-num\" id=\"statRecent\">\u2014<\/div><div class=\"kl-stat-lbl\">Papers this year<\/div><\/div>\r\n    <div class=\"kl-stat\"><div class=\"kl-stat-num\" id=\"statCitations\">\u2014<\/div><div class=\"kl-stat-lbl\">Total citations<\/div><\/div>\r\n  <\/div>\r\n  <div class=\"kl-controls\">\r\n    <div class=\"kl-search-wrap\">\r\n      <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><path d=\"m21 21-4.35-4.35\"\/><\/svg>\r\n      <input type=\"text\" id=\"klSearch\" placeholder=\"Search by title, author, or journal\u2026\" oninput=\"klRender()\">\r\n    <\/div>\r\n    <div class=\"kl-filters\">\r\n      <span class=\"kl-filter-lbl\">Topic:<\/span>\r\n      <button class=\"kl-chip active\" data-topic=\"all\" onclick=\"klSetTopic(this)\">All<\/button>\r\n      <button class=\"kl-chip\" data-topic=\"bci\" onclick=\"klSetTopic(this)\">Brain-Computer Interface<\/button>\r\n      <button class=\"kl-chip\" data-topic=\"motor\" onclick=\"klSetTopic(this)\">Motor learning<\/button>\r\n      <button class=\"kl-chip\" data-topic=\"vr\" onclick=\"klSetTopic(this)\">Virtual reality<\/button>\r\n      <button class=\"kl-chip\" data-topic=\"ml\" onclick=\"klSetTopic(this)\">Machine learning<\/button>\r\n      <button class=\"kl-chip\" data-topic=\"eye\" onclick=\"klSetTopic(this)\">Eye tracking<\/button>\r\n    <\/div>\r\n  <\/div>\r\n  <div id=\"klList\"><div class=\"kl-loading\">Loading publications\u2026<\/div><\/div>\r\n<\/div>\r\n\r\n<script>\r\n(function(){\r\n  var KL = {\r\n    papers: [],\r\n    topic: 'all',\r\n    TOPIC_KEYWORDS: {\r\n      bci:   ['brain-computer','bci','bmi','brain-machine','neuroprosthes','neural interface','eeg','electrode','decod'],\r\n      motor: ['motor','sequence learning','movement','oscillat','beta','premotor','reach','grasp','kinematic'],\r\n      vr:    ['virtual reality','avatar','embodiment','phantom','tactile','immersive','vr','augmented'],\r\n      ml:    ['machine learning','deep learning','neural network','classif','reinforcement','convolutional','lstm','transformer','spikedeep'],\r\n      eye:   ['eye track','pupil','gaze','saccade','fixation','ocular','emblem','semiot']\r\n    },\r\n    tagClass: {bci:'kl-tag-bci',motor:'kl-tag-motor',vr:'kl-tag-vr',ml:'kl-tag-ml',eye:'kl-tag-eye'},\r\n    tagLabel: {bci:'BCI',motor:'Motor learning',vr:'Virtual reality',ml:'Machine learning',eye:'Eye tracking'},\r\n    LAB_MEMBERS: ['klaes','pilacinski','dyck','fidencio','metzler','wiedenski','grun','ali','saif'],\r\n\r\n    getTopics: function(paper) {\r\n      var text = ((paper.title||'')+(paper.journal||'')).toLowerCase();\r\n      var topics = [];\r\n      for (var t in this.TOPIC_KEYWORDS) {\r\n        var kws = this.TOPIC_KEYWORDS[t];\r\n        for (var i=0; i<kws.length; i++) {\r\n          if (text.indexOf(kws[i]) > -1) { topics.push(t); break; }\r\n        }\r\n      }\r\n      return topics;\r\n    },\r\n\r\n    highlightAuthors: function(authors) {\r\n      if (!authors) return '';\r\n      var lab = this.LAB_MEMBERS;\r\n      return authors.split(',').map(function(a){\r\n        var al = a.toLowerCase();\r\n        for (var i=0; i<lab.length; i++) {\r\n          if (al.indexOf(lab[i]) > -1) return '<span class=\"kl-me\">'+a.trim()+'<\/span>';\r\n        }\r\n        return a.trim();\r\n      }).join(', ');\r\n    },\r\n\r\n    load: function() {\r\n      var self = this;\r\n      fetch('https:\/\/klaeslab.de\/wp-content\/uploads\/2026\/05\/papers.json')\r\n        .then(function(r){ return r.json(); })\r\n        .then(function(d){\r\n          self.papers = Array.isArray(d) ? d : [];\r\n          self.render();\r\n        })\r\n        .catch(function(){ self.showError(); });\r\n    },\r\n\r\n    showError: function() {\r\n      document.getElementById('klList').innerHTML = '<div class=\"kl-empty\">Could not load publications. Please try again later.<\/div>';\r\n    },\r\n\r\n    render: function() {\r\n      var q = (document.getElementById('klSearch').value||'').toLowerCase().trim();\r\n      var topic = this.topic;\r\n      var self = this;\r\n\r\n      var filtered = this.papers.filter(function(p) {\r\n        if (q) {\r\n          var haystack = ((p.title||'')+(p.authors||'')+(p.journal||'')).toLowerCase();\r\n          if (haystack.indexOf(q) === -1) return false;\r\n        }\r\n        if (topic !== 'all') {\r\n          var topics = self.getTopics(p);\r\n          if (topics.indexOf(topic) === -1) return false;\r\n        }\r\n        return true;\r\n      });\r\n\r\n      var years = [];\r\n      this.papers.forEach(function(p){ if (years.indexOf(p.year) === -1) years.push(p.year); });\r\n      var thisYear = new Date().getFullYear();\r\n      var recentCount = this.papers.filter(function(p){ return p.year === thisYear; }).length;\r\n      document.getElementById('statTotal').textContent = this.papers.length;\r\n      document.getElementById('statYears').textContent = years.length;\r\n      document.getElementById('statRecent').textContent = recentCount;\r\n      document.getElementById('statCitations').textContent = '\u2014';\r\n      document.getElementById('klUpdated').textContent = 'Updated ' + new Date().toLocaleDateString('en-GB',{day:'numeric',month:'short',year:'numeric'});\r\n\r\n      var byYear = {};\r\n      filtered.forEach(function(p){\r\n        var y = p.year || 'Unknown';\r\n        if (!byYear[y]) byYear[y] = [];\r\n        byYear[y].push(p);\r\n      });\r\n      var sortedYears = Object.keys(byYear).sort(function(a,b){ return b-a; });\r\n\r\n      if (filtered.length === 0) {\r\n        document.getElementById('klList').innerHTML = '<div class=\"kl-empty\">No papers match your search.<\/div>';\r\n        return;\r\n      }\r\n\r\n      var html = '';\r\n      sortedYears.forEach(function(year) {\r\n        var papers = byYear[year];\r\n        html += '<div class=\"kl-year-section\">';\r\n        html += '<div class=\"kl-year-heading\"><span class=\"kl-year-num\">'+year+'<\/span><span class=\"kl-year-badge\">'+papers.length+' paper'+(papers.length!==1?'s':'')+'<\/span><\/div>';\r\n        papers.forEach(function(p) {\r\n          var topics = self.getTopics(p);\r\n          var tagHtml = topics.slice(0,2).map(function(t){\r\n            return '<span class=\"kl-tag '+self.tagClass[t]+'\">'+self.tagLabel[t]+'<\/span>';\r\n          }).join('');\r\n          var doiHtml = p.doi ? '<a class=\"kl-doi\" href=\"'+p.doi+'\" target=\"_blank\" rel=\"noopener\">&#x2197; DOI<\/a>' : '';\r\n          var titleHtml = p.doi\r\n            ? '<a class=\"kl-paper-title\" href=\"'+p.doi+'\" target=\"_blank\" rel=\"noopener\">'+p.title+'<\/a>'\r\n            : '<span class=\"kl-paper-title\">'+p.title+'<\/span>';\r\n          html += '<div class=\"kl-paper\">';\r\n          html += titleHtml;\r\n          html += '<div class=\"kl-authors\">'+self.highlightAuthors(p.authors)+'<\/div>';\r\n          html += '<div class=\"kl-meta\">';\r\n          if (p.journal) html += '<span class=\"kl-journal\">'+p.journal+'<\/span>';\r\n          html += tagHtml;\r\n          html += doiHtml;\r\n          html += '<\/div><\/div>';\r\n        });\r\n        html += '<\/div>';\r\n      });\r\n\r\n      document.getElementById('klList').innerHTML = html;\r\n    }\r\n  };\r\n\r\n  window.klRender = function(){ KL.render(); };\r\n  window.klSetTopic = function(btn) {\r\n    document.querySelectorAll('#klpub .kl-chip').forEach(function(b){ b.classList.remove('active'); });\r\n    btn.classList.add('active');\r\n    KL.topic = btn.dataset.topic;\r\n    KL.render();\r\n  };\r\n\r\n  KL.load();\r\n})();\r\n<\/script>\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><\/div><\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Publications Loading&#8230; \u2014Total papers \u2014Years active \u2014Papers this year \u2014Total citations Topic: All Brain-Computer Interface Motor learning Virtual reality Machine learning Eye tracking Loading publications\u2026<\/p>","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"class_list":["post-58629","page","type-page","status-publish","hentry","description-off"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/klaeslab.de\/de\/wp-json\/wp\/v2\/pages\/58629","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/klaeslab.de\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/klaeslab.de\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/klaeslab.de\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/klaeslab.de\/de\/wp-json\/wp\/v2\/comments?post=58629"}],"version-history":[{"count":9,"href":"https:\/\/klaeslab.de\/de\/wp-json\/wp\/v2\/pages\/58629\/revisions"}],"predecessor-version":[{"id":58639,"href":"https:\/\/klaeslab.de\/de\/wp-json\/wp\/v2\/pages\/58629\/revisions\/58639"}],"wp:attachment":[{"href":"https:\/\/klaeslab.de\/de\/wp-json\/wp\/v2\/media?parent=58629"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}