# ODK Survey/ODK Collect and Custom Form Runtime

**URL:** <https://forum.getodk.org/t/odk-survey-odk-collect-and-custom-form-runtime/2857>\
**Category:** Development\
**Created:** [January 23, 2014, 2:16pm UTC](https://forum.getodk.org/t/odk-survey-odk-collect-and-custom-form-runtime/2857 "2014-01-23T14:16:15Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![jude1](https://getodk.b-cdn.net/letter_avatar_proxy/v4/letter/j/858c86/32.png) [@jude1](https://forum.getodk.org/u/jude1)\
**Post date:** [January 23, 2014, 2:16pm UTC](https://forum.getodk.org/t/odk-survey-odk-collect-and-custom-form-runtime/2857/1 "2014-01-23T14:16:15Z")

</div>

Hey all,

I would like to get some clarifications on having custom elements or custom  
organisation of form elements. A simple example is having more than one  
form element on a page. My thinking is that to implement this on ODK  
Collect would require changes to ODK Collect. Is it possible to include  
custom form engines? i.e extend/override the current form engine.  
I also noticed the availability of ODK survey which is reliant on  
javascript though is still uses the Xform standard. Would it be easier to  
do such on ODK survey than ODK collect.  
Thanks!

> **···**
>
> -- Regards,
> 
> Jude Mwenda  
> Twitter: [www.twitter.com/judemwenda](http://www.twitter.com/judemwenda)  
> Web: www.afrigeo.co.ke

---

<div class="post-metadata">

**Author:** ![Mitch\_S](https://getodk.b-cdn.net/letter_avatar_proxy/v4/letter/m/3ec8ea/32.png) [@Mitch\_S](https://forum.getodk.org/u/Mitch_S)\
**Post date:** [January 24, 2014, 6:01pm UTC](https://forum.getodk.org/t/odk-survey-odk-collect-and-custom-form-runtime/2857/2 "2014-01-24T18:01:20Z")

</div>

Correction: ODK Survey does not use XForms. It is entirely JSON /  
javascript based. It has its own intermediate representation (formDef.json)  
and its own XLSX form design syntax incompatible with the tools used for  
ODK Collect.

ODK Collect only allows rendering of the predefined set of widgets, either  
one per page, or multiple per page, in a vertical scrolling region. For  
extensions, we support launching of external apps to present more complex  
visuals. If a widget is of general use, and contributed under an Apache 2  
license, we will incorporate it into the main code tree.

> **···**
>
> ----- You should definitely look at ODK Survey. It is exactly intended for easy-to-use yet highly-customized form layout (this will become even easier later this spring).
> 
> Beta documentation is here: [http://opendatakit.org/use/beta/](http://opendatakit.org/use/beta/) -- see the  
> Survey and XLSXConverter documentation under there.
> 
> On Thu, Jan 23, 2014 at 6:16 AM, jude mwenda [judemwenda@gmail.com](mailto:judemwenda@gmail.com) wrote:
> 
> > Hey all,
> > 
> > I would like to get some clarifications on having custom elements or  
> > custom organisation of form elements. A simple example is having more than  
> > one form element on a page. My thinking is that to implement this on ODK  
> > Collect would require changes to ODK Collect. Is it possible to include  
> > custom form engines? i.e extend/override the current form engine.  
> > I also noticed the availability of ODK survey which is reliant on  
> > javascript though is still uses the Xform standard. Would it be easier to  
> > do such on ODK survey than ODK collect.  
> > Thanks!
> > 
> > --  
> > Regards,
> > 
> > Jude Mwenda  
> > Twitter: [www.twitter.com/judemwenda](http://www.twitter.com/judemwenda)  
> > Web: www.afrigeo.co.ke
> > 
> > --  
> > You received this message because you are subscribed to the Google Groups  
> > "ODK Developers" group.  
> > To unsubscribe from this group and stop receiving emails from it, send an  
> > email to [opendatakit-developers+unsubscribe@googlegroups.com](mailto:opendatakit-developers+unsubscribe@googlegroups.com).  
> > For more options, visit [https://groups.google.com/groups/opt\_out](https://groups.google.com/groups/opt_out).
> 
> --  
> Mitch Sundt  
> Software Engineer  
> University of Washington  
> [mitchellsundt@gmail.com](mailto:mitchellsundt@gmail.com)
